gpt4 book ai didi

javascript - 除了 Promises 之外,还有什么模式可以编排函数调用吗?

转载 作者:行者123 更新时间:2023-12-03 11:41:29 24 4
gpt4 key购买 nike

我正试图逃离厄运金字塔。想象一下以下函数调用系列:

$.wait(1000).done(function() {
//Do something

$.wait(5000).done(function(){
//Do something else

$.wait(2200).done(function(){
//Do something else
});
});
});

其中 $.wait 函数定义为:

$.wait = function (duration) {
return $.Deferred(function (dfd) {
setTimeout(dfd.resolve, duration);
});
};

问题是如何重构上述代码,使其变得可读/可维护?

最佳答案

好吧,您的代码中已经 promise (或者至少是延迟),因此没有充分的理由去寻找不同的编码模式。但是您可以flatten your callback pyramid通过将 Promise 回调与全能的 then method 链接起来而不是嵌套它们(使用 done):

$.wait(1000).then(function() {
// ^^^^
//Do something
return $.wait(5000);
// ^^^^^^
}).then(function() {
// ^^^^
//Do something else
return $.wait(2000);
// ^^^^^^
}).then(function() {
// ^^^^
//Do something else
});

这与您的代码完全相同。

关于javascript - 除了 Promises 之外,还有什么模式可以编排函数调用吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26258618/

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