首页 > 解决方案 > 如何解决 parquetjs 库问题 - 异步错误?

问题描述

我尝试使用 parquetjs: https://www.npmjs.com/package/parquetjs

他们示例中的代码:

var parquet = require('parquetjs');

// declare a schema for the `fruits` table
var schema = new parquet.ParquetSchema({
  name: { type: 'UTF8' },
  quantity: { type: 'INT64' },
  price: { type: 'DOUBLE' },
  date: { type: 'TIMESTAMP_MILLIS' },
  in_stock: { type: 'BOOLEAN' }
});

// create new ParquetWriter that writes to 'fruits.parquet'
var writer = await parquet.ParquetWriter.openFile(schema, 'fruits.parquet');

// append a few rows to the file
await writer.appendRow({name: 'apples', quantity: 10, price: 2.5, date: new Date(), in_stock: true});
await writer.appendRow({name: 'oranges', quantity: 10, price: 2.5, date: new Date(), in_stock: true});

错误: SyntaxError: await is only valid in async function

应该是什么问题(因为他们将其作为示例发布)?

标签: node.jsparquet

解决方案


SyntaxError: await is only valid in async function

这意味着您只能在函数签名await中具有关键字的函数中使用关键字。async

作为一种快速解决方法,您可以使用asyncIIFE。

(async() => {
    // create new ParquetWriter that writes to 'fruits.parquet'
    var writer = await parquet.ParquetWriter.openFile(schema, 'fruits.parquet');

    // append a few rows to the file
    await writer.appendRow({name: 'apples', quantity: 10, price: 2.5, date: new Date(), in_stock: true});
    await writer.appendRow({name: 'oranges', quantity: 10, price: 2.5, date: new Date(), in_stock: true});
})()

推荐阅读