关于es7里面的async/await的一个疑问?

以阮一峰的例子来看:

var fs = require('fs');

var readFile = function (fileName) {
  return new Promise(function (resolve, reject) {
    fs.readFile(fileName, function(error, data) {
      if (error) reject(error);
      resolve(data);
    });
  });
};

var asyncReadFile = async function () {
  var f1 = await readFile('/etc/fstab');
  var f2 = await readFile('/etc/shells');
  console.log(f1.toString());
  console.log(f2.toString());
};

在这个里面,如果我想每次把readFile里面的error打印出来,请问这个该怎么在async函数里面处理呢?

阅读 2.7k
2 个回答

不太清楚你这里问具体是什么,如果要处理异步操作中的错误的话。

可以 var f1 = await readFile('/etc/fstab').catch(e=>{ 处理错误 }) 因为返回的是一个promise对象,

直接在异步操作执行完毕后,直接catch错误就好了,和promise的写法是一样的。

Promise的fulfill / reject 對應await表達式的返回 / throw

try {
  var f1 = await readFile('/etc/fstab');
  console.log(f1.toString());
} catch (e) {
  console.error(e);
}
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题