Open shfshanyue opened 2 years ago
return promise:
返回结果为 Promise {fulfilled或者 rejected}
return await promise:
返回结果为 Promise {pending}, 因为 async 函数总是返回一个 promise (resolved promise?
希望可以得到山月的反馈
async function p1 () {
return 3
}
async function p2 () {
return Promise.resolve(3)
}
async function p3 () {
return await Promise.resolve(3)
}
// Output: p1、p3、p2
p3().then(o => console.log(o, 'p3'))
p2().then(o => console.log(o, 'p2'))
p1().then(o => console.log(o, 'p1'))
@liweinanone 最终返回得到的结果是相同的,但是有些顺序的变化,可看此例
主要在await会等待Promise的完结状态,如果Promise为reject,会在当前trycatch中被捕获,否则会将reject传递到外层。 https://stackoverflow.com/questions/38708550/difference-between-return-await-promise-and-return-promise
上述例子为什么先调用p2 结果还是没有改变?
p2().then(o => console.log(o, 'p2'))
p3().then(o => console.log(o, 'p3'))
p1().then(o => console.log(o, 'p1'))
如