gpt4 book ai didi

javascript - Promise 加数字返回 Promise

转载 作者:行者123 更新时间:2023-12-03 02:30:51 26 4
gpt4 key购买 nike

我有一个简单的代码

async function foo() {
const b = bar()
return 2 + b
}

async function bar() {
return 2
}

(async() => {
console.log(typeof foo())
})()

它记录对象。不是NaNnumber + object -> object 是怎么发生的?

根据我对 + 规范的内存,如果其中一个操作数是基元,第二个操作数是对象,那么对象应该转换为基元。在本例中使用 .valueOf() 方法

最佳答案

它认为这是因为在您的情况下,async函数尚未解决,因为没有await。所以你得到的是 promise 对象而不是结果。

查看这些案例:

async function foo () {
const b = await bar() //await result
return 2 + b
}

async function bar () {
return 2
}

;(async () => {
console.log(typeof await foo()) //number
})()

async function foo () {
const b = bar() //no await
return 2 + b
}

async function bar () {
return 2
}

;(async () => {
console.log(typeof await foo()) //string
})()

关于javascript - Promise 加数字返回 Promise,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48746961/

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