gpt4 book ai didi

javascript - 为什么 jQuery 的 promise 有一个 done(),而 Mozilla 记录的 Javascript 的 promise 却没有?如果我想在 JS 中有一个 done() 怎么办?

转载 作者:数据小太阳 更新时间:2023-10-29 06:10:45 25 4
gpt4 key购买 nike

Mozilla 的 JavaScript 文档的 Promises(参见 API page)和 jQuery 的 Promises(参见 API page)之间有什么区别?

Mozilla 的promise 好像只有2 个方法:then 和catch。 jQuery的promise好像有更多的方法,包括:then、done、fail。 ( from here )

为什么 Mozilla 上的 JS API 没有 done()?如果我想在 JavaScript 中使用 done() 功能怎么办?我该怎么办?

最佳答案

Mozilla 的 javascript promise 基于 ES6 standard ,而 jQuery promises 是在 ES6 发布之前创建的。

根据我对 jQuery 文档的阅读,ES6 then 等同于 jQuery done

实际上有一大堆 promise 库,但对我来说 ES6 是最容易理解的。您只需要“then”和“catch”,将一系列操作链接起来真的很容易。添加用于并行任务的 Promise.all 并且涵盖了您需要的 99%。

return doSomething().then(function(result) {
return doSomethingElse(result);
}).then(function(secondResult) {
return doThirdSomething(secondResult);
}).catch(function(err) {
console.log(err);
}).then(function(finalResult) {
// a then after a catch is like a "finally" or "always"
return finalResult;
});

jQuery 确实支持但在 ES6 中不支持的一些东西是某种“进步”解决方案。

关于javascript - 为什么 jQuery 的 promise 有一个 done(),而 Mozilla 记录的 Javascript 的 promise 却没有?如果我想在 JS 中有一个 done() 怎么办?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34407665/

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