gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-30 06:12:56 26 4
gpt4 key购买 nike

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

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/

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