Javascript 替换异步等待

Javascript 替换异步等待,javascript,node.js,async-await,Javascript,Node.js,Async Await,我试图从代码中删除async Wait before(async () => { await tests.env(); token = await tests.getToken(accMock, 'acceptor'); }); 我的尝试: tests.env() .then((output) => output.getToken(accMock, 'acceptor') .then((v) => (token = v))); 但是这段代码没有通过测试。有什

我试图从代码中删除async Wait

before(async () => {
  await tests.env();
  token = await tests.getToken(accMock, 'acceptor');
});
我的尝试:

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

但是这段代码没有通过测试。有什么不对劲吗?

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

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);
});

“Replasunf”-不错的标题…:|但是为什么要从
async/await
回到传统的
Promise/then
方法呢?应该是另一种方式。您是否尝试了
return test.env…
?您的before可能没有等待测试真正解决?
。然后(()=>tests.getToken(accMock,'acceptor'))