当 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'))
关于javascript - JavaScript 中 Async Await 中的关键字 "await"是否仅适用于 Promise?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45159624/