gpt4 book ai didi

javascript - 您应该在异步函数中等待返回值吗?

转载 作者:行者123 更新时间:2023-11-30 11:10:44 25 4
gpt4 key购买 nike

async function delay(t) {
return new Promise(f=>setTimeout(f, t))
}

async function delay100() {
return await delay(100) // <---- do we need 'await' here?
}

async function main(){
await delay100(); console.log('ok')
await delay100(); console.log('ok')
await delay100(); console.log('ok')
await delay100(); console.log('ok')
}

main()

我看不出有什么区别,但想知道在异步函数中等待异步返回值是否更好?更喜欢一种解决方案而不是另一种解决方案的原因是什么?有任何性能、可移植性、可用性或语义方面的考虑吗?

最佳答案

实际上,它们是相同的,因为 JS 具有 Promises 的自动展开。使用您觉得更舒适/更易读的任何一个。


话虽如此,

语义上,await你回来了Promise<T>而没有 await在语义上返回了Promise<Promise<T>> . (再次澄清一下,两者在实践中会产生完全相同的结果,甚至会产生完全相同的返回类型。)

关于javascript - 您应该在异步函数中等待返回值吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53850653/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com