Javascript 替换异步等待
我试图从代码中删除async WaitJavascript 替换异步等待,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))); 但是这段代码没有通过测试。有什
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'))