如何使用node js util.promisify和writeFile fs函数并等待

时间:2017-10-21 12:12:30

标签: javascript node.js mocha

如何将此函数转换为使用async / await样式:

it.only("should bump the 'minor' version attribute", () => {
  const writeFile = util.promisify(require("fs").writeFile);
  return writeFile("bump-minor.json", "contents").then(function() {
    console.log('done');
  });
});

我尝试过使用它,但它不起作用:

const writeFile = util.promisify(require("fs").writeFile);
await writeFile("bump-minor.json", "contents");
console.log('done');

它在第2行显示以下错误:

Parsing error: Unexpected token writeFile

如果我添加" async"到摩卡测试功能:

it.only("should bump the 'minor' version attribute", async () => {
  const writeFile = util.promisify(require("fs").writeFile);
  return writeFile("bump-minor.json", "contents").then(function() {
    console.log('done');
  });
});

然后我在第1行得到了这个错误:

Parsing error: Unexpected token =>

我可能遗漏了async / await和util.promisify如何在节点中协同工作的基本原理

使用节点8.7.0。

1 个答案:

答案 0 :(得分:1)

我在mocha之前在" npm test":

中运行了eslint
"scripts": {
  "test": "eslint *.js \"src/**/*.js\" \"test/**/*.js\" && mocha"
}

删除" eslint"打电话解决问题:

"scripts": {
  "test": "mocha"
}

出于某种原因,eslint使用mocha

失败async / await语法