Ash*_*rlc 14 javascript async-await ecmascript-2017
在异步函数中,我可以得到一个异步值,如下所示:
const foo = await myAsyncFunction()
如果我想在结果上调用一个方法,使用同步函数我会做类似的事情 myAsyncFunction().somethingElse()
是否可以使用异步函数链接调用,或者是否必须为每个结果分配一个新变量?
Tam*_*dus 28
您可以在表达式中等待,无需将其分配给新变量.
const foo = await (await myAsyncFunction()).somethingElseAsync()
Run Code Online (Sandbox Code Playgroud)
或者,如果要在结果上调用sync方法:
const foo = (await myAsyncFunction()).somethingElseSync()
Run Code Online (Sandbox Code Playgroud)
FZs*_*FZs 15
我很惊讶它还没有被提及,但在没有额外变量的情况下实现这一点的最易读的方法可能是使用链.then,await最后:
await myAsyncFunction()
.then(res => res.somethingElse())
Run Code Online (Sandbox Code Playgroud)
请记住,与 Promise 一起await工作,但不能取代它们!