gpt4 book ai didi

javascript - 两个以上任务的嵌套回调

转载 作者:行者123 更新时间:2023-12-03 10:28:26 25 4
gpt4 key购买 nike

可以使用回调确定两个任务的顺序,如下所示。

a(b);

function a(callback) {
// do something
callback();
}

function b() {
// do next
}

参见Fiddle

首先执行a(),然后执行b()

我想连接两个以上的任务。当我处理相当大的函数时,我正在寻找类似的东西:

a(b(c));

首先执行a(),然后执行b(),然后执行c()。但是我在这方面没有成功。请参阅Fiddle

有没有一种简单的方法可以做到这一点,也许不需要 Promise?

最佳答案

您立即调用 b,而不是向 a 传递回调。您需要使用函数表达式:

a(function(aResult) {
b(c);
});

当然,您可以通过从所有函数返回闭包来避免这些问题:

function a(callback) {
return function(args) {
// do something
if (callback) callback(res);
};
}
function b(callback) {
return function(aResult) {
// do next
if (callback) callback(res);
};
}
function c(callback) {
return function(bResult) {
// do next
if (callback) callback(res);
};
}

你可以这样称呼:

a(b(c())();

(这称为纯 continuation passing style )

关于javascript - 两个以上任务的嵌套回调,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29319439/

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