Javascript 承诺加数字返回承诺

Javascript 承诺加数字返回承诺,javascript,promise,type-conversion,Javascript,Promise,Type Conversion,我有一个简单的代码 异步函数foo(){ 常数b=bar() 返回2+b } 异步功能条(){ 返回2 } (异步()=>{ console.log(typeof foo()) })()它认为这是因为在您的情况下,异步函数尚未解决,因为没有等待。所以你得到的是承诺对象而不是结果 参见这些案例: 异步函数foo(){ 常量b=等待条()//等待结果 返回2+b } 异步功能条(){ 返回2 } ;(异步()=>{ console.log(typeof wait foo())//编号 })()函

我有一个简单的代码

异步函数foo(){ 常数b=bar() 返回2+b } 异步功能条(){ 返回2 } (异步()=>{ console.log(typeof foo())
})()它认为这是因为在您的情况下,
异步
函数尚未解决,因为没有
等待
。所以你得到的是承诺对象而不是结果

参见这些案例:

异步函数foo(){ 常量b=等待条()//等待结果 返回2+b } 异步功能条(){ 返回2 } ;(异步()=>{ console.log(typeof wait foo())//编号
})()函数
foo
bar
返回承诺,因此,您得到了承诺的类型(对象)

可能需要比较结果,因此需要等待promise解析串联:

let result = await foo();
             ^
异步函数foo(){ const b=bar()//这里您也需要等待。 返回2+b;//2+“[对象承诺]” } 异步功能条(){ 返回2 } (异步()=>{ 让结果=等待foo(); 控制台日志(结果); 控制台日志(结果类型);
})()它将这两个值关联为“2[对象承诺]”。只需省略
foo
的类型是一个
异步函数
,调用它(
foo()
)将返回一个承诺,它显然是一个对象。无论你是用卡车运输啤酒或水果,还是步行,道路仍然是道路。