替换异步等待到

时间:2019-07-11 11:53:54

标签: javascript node.js async-await

我试图从代码中删除异步等待状态

before(async () => {
  await tests.env();
  token = await tests.getToken(accMock, 'acceptor');
});

我的尝试

tests.env()
  .then((output) => output.getToken(accMock, 'acceptor')
  .then((v) => (token = v)));

但是此代码未通过测试。有什么问题吗?

1 个答案:

答案 0 :(得分:1)

这两个代码不相等。您的第一段代码是:

before(async () => {
  await tests.env();
  token = await tests.getToken(accMock, 'acceptor');
});

用async / await重写的第二段代码是:

before(async () => {
  let output = await tests.env();
  let v = await output.getToken(accMock, 'acceptor');
  token = v;
});

请注意,在第一个代码中,您呼叫tests.getToken(),在第二个代码中您呼叫output.getToken()

正确的重写是:

before(() => {
  return tests.env()
              .then(() => tests.getToken(accMock, 'acceptor'))
              .then(v => token = v);
});