javascript - 被赋予异步函数并且 .then() 是否不同

标签 javascript node.js function syntax async-await

给定的两种语法的工作方式是相同还是不同?

functionName.then((data) => {console.log(data)})
            .catch((e) => {console.log(e)});

(async () => {
   let data = (await client.function(input));
   console.log(data);
})().catch(e => {
    console.log(e);
});     

最佳答案

虽然输出 是相同的,但这两者在 JavaScript 运行时的操作略有不同。

第一个 Promise 示例中的 then 处理函数在 async 示例中不存在。虽然差异很小,但还是存在的。 then 函数将被添加到事件循环调用堆栈中,而在异步示例中,await 调用在运行时的较低级别处理。

另外,命名函数(functionName)表示函数已经自己保存到内存中,在第二个例子中一个对象与一个方法一起使用,这是不同的,意味着不同的内存用法。此外,第二个示例将所有内容都包装在 IIFE 中(以断言 async 性质),这又增加了一层和差异。

关于javascript - 被赋予异步函数并且 .then() 是否不同,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57822075/

相关文章:

javascript - Passport 没 react ?

Javascript从用户输入中找到平均值

javascript - 如何避免 Uncaught ReferenceError

javascript - 如何在 Vue.js 中将 InnerHtml 复制到剪贴板?

node.js - 如何让 Firebase Functions 充当用户而不是管理员?

javascript - 由 Node JS 服务器返回时无法访问对象的属性

python - 如何在不使用exec的情况下在每次迭代中使用for循环中的不同函数?

r - 将数据框列作为参数传递给 mutate 函数

javascript - 您知道一种保护 JS 代码并使其仅在远程请求时可见的方法吗?

javascript - 这种默认参数和解构的特殊场景是如何工作的?