javascript - async 关键字/Promise 等效项

标签 javascript asynchronous promise settimeout

这两个怎么不等价?

这不起作用。

const message = async () => {
    setTimeout(() => {
        console.log("delayed")
        return true
    }, 1000)
}

但这确实如此吗?

const message = () => {
    return new Promise((resolve, reject) => {
        setTimeout(() => {
            console.log("delayed")
            resolve(true)
        }, 1000)
    })
}

这是否意味着您只能在异步函数中“返回”直接位于函数范围内的内容(而不是在另一个函数中)?

异步函数返回的 Promise 与常规 Promise 不同吗?它到底是如何初始化的?

最佳答案

第一个示例中的 message 函数没有 return 语句来传递其解析值。

第二个示例中的 Promise 显式地将值传递给 resolve()

Does this mean you can only "return" in an async function if it is directly in the scope of the function(not in another function)?

是的。函数的返回值由该函数中的return 语句确定。在其他函数中放置 return 语句将会设置该函数的返回值。

关于javascript - async 关键字/Promise 等效项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51769667/

相关文章:

javascript - 为什么我需要 2 个 requestAnimationFrame 调用来等待渲染的 dom

javascript - 如何从 Firebase 存储下载整个文件夹?

java - 在 Java 中从 C++ 复制延迟/异步启动策略

javascript - 测试一个 Node.js 函数,其返回值可以根据允许异步操作的时刻而改变

javascript - 等待 Promise 在 emitter.on 监听器函数中解析

javascript - HTML 文本输入 * "value";在不同的文本输入中显示

javascript - ReactJS 中的 DOM 操作和页面重新加载

swift - 嵌套 for 循环中的多个异步请求

javascript - 确保 promise 链中发生某些步骤或提前停止链

javascript - Promise inside promise : what's the correct way to return a variable from the child promise? (JS)