这两个不相等吗?
这不起作用。
const message = async () => {
setTimeout(() => {
console.log("delayed")
return true
}, 1000)
}
但这可以吗?
const message = () => {
return new Promise((resolve, reject) => {
setTimeout(() => {
console.log("delayed")
resolve(true)
}, 1000)
})
}
这是否意味着您只能在异步函数中直接“返回”(而不是在另一个函数中)?
异步函数返回的承诺与常规承诺不同吗?究竟如何初始化?
答案 0 :(得分:5)
第一个示例中的message
函数没有return
语句来传递其分辨率值。
第二个示例中的Promise明确地将值传递给resolve()
。
这是否意味着您只能在异步函数中直接“返回”(而不是在另一个函数中)?
是的。函数的返回值由该函数中的return
语句确定。将return
语句放在其他函数中将设置那个函数的返回值。