gpt4 book ai didi

jquery - 在 jQuery 中获得已解决的 promise 的更好方法?

转载 作者:行者123 更新时间:2023-12-01 01:14:43 25 4
gpt4 key购买 nike

当在 jQuery 中使用 Promise 进行编程时,我有时需要从已解决的 Promise 开始,特别是在像 this answer 中的方法 #2 所示的循环中链接 .then() 时。 :

data.reduce(function(p, item) {
return p.then(function() {
return print(item);
});
}, $.Deferred().resolve().promise());

所以,我知道我可以通过这个得到一个已解决的 promise :

$.Deferred().resolve().promise()

但是,这看起来有点丑陋和浪费(三个函数调用)。是否有更好的(更少的代码,更少的函数调用)方法来在 jQuery 中获得已解决的 promise ,或者更好的方法来编写上面的 .reduce() 循环?

最佳答案

对于初学者 - 您不需要 .promise。 jQuery 延迟对象是 already also promises所以 $.Deferred().resolve() 也可以工作。

在我看来,这是 jQuery 的最佳方法,因为它是明确的,但是还有更短的方法可以解决它。我知道的最短的是:

$().promise(); // shorter but more hacky.

$.Deferred().resolve(); // this will work and is what I'd do

$.when(); // this is also a viable alternative

这相当短。当然,如果有能力的话,最好使用更好的 Promise 库,因为 jQuery Promise 不能保证有序的异步执行,并且不允许错误处理,而且如果您有很多 Promise 运行,速度会非常慢。

当然,没有人会阻止您围绕它编写实用方法:)

关于jquery - 在 jQuery 中获得已解决的 promise 的更好方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25102093/

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