簡體   English   中英

JavaScript中來自Async Await的關鍵字“ await”僅適用於諾言嗎?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM