Node.js用async/await处理流数据

2018-08-30  本文已影响0人  怪爵Geekknight

关键:
  要解决这个问题的关键就是await function()中function()的返回值是什么类型?
答案:
  Promise
案例:
  下面给出一个案例,以流的形式读取文件数据。例子中定义了一个readStreamFile函数,然后在main中使用await调用readStreamFile这个方法。将文件内容赋值给file_content变量.

const readStreamFile = (filename) => {
  return new Promise((executor, reject) => {
    let chunks = [];
    const reader = fs.createReadStream(filename)
    reader.on('data', (chunk) => {
      chunks.push(chunk);
    })
    reader.on('end', () => {
      reader.close();
      executor(Buffer.concat(chunks).toString('base64'));
    })
    reader.on('error', (err) => {
      reject(err);
    })
  })
}


const main = async (filename) => {
  try {
    const file_content = await readStreamFile(filename);
  } catch (e) {
    console.log(e.message);
  }
}

main("filename");
上一篇 下一篇

猜你喜欢

热点阅读