[英]Does the keyword “await” from Async Await in JavaScript only work for promise?
當await
寫入異步函數中時,例如-
let x = await doSomething()
doSomething
函數是否必須返回Promise
?
它可能會返回任何內容,因為
let x = await doSomething()
// ... rest of your code
// is roughly equivalent
Promise
.resolve(doSomething())
.then(value => {
let x = value
// ... rest of your code
})
但是,如果doSomething
是異步的,則它必須返回“ thenable”內容,以便await
可以實際工作
const doSomething = () => ({ then(fn) { setTimeout(fn, 2000, 'hello') } }) const run = async () => { let msg = await doSomething() console.log(msg) } run().then(() => console.log('Done'))
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.