如何在.on事件node.js中调用异步函数

时间:2018-11-13 13:05:44

标签: javascript node.js events

我正在使用csv-parser npm模块createReadStream读取CSV文件。

export default async function main() {
  const readstream = fs.createReadStream('src/working_file.csv');
stream.on('data', data => {
const val = await fun(param1, param2, param3);
   });
  fun(param1, param2, param3){
    return true;
  }
}

我必须通过await来调用fun函数,但这会抛出错误。 await仅在异步函数中有效。谁能帮我解决这个问题?

2 个答案:

答案 0 :(得分:2)

仅指示回调函数为async

stream.on('data', async data => {
  // Do async stuff
})

答案 1 :(得分:0)

您要等待的函数必须返回 promise

export default async function main() {
  const readstream = fs.createReadStream('src/working_file.csv');
stream.on('data', async data => {
   try{
      const val = await fun(param1, param2, param3);
    } catch(err) {
    //handle error
    }

   });
  fun(param1, param2, param3){
    return new Promise((resolve, reject)=>{
         resolve(some_value)
    })
  }
}