嵌套两个以上任务的回调
Nesting callbacks for more than two tasks
可以使用回调来确定两个任务的顺序,如下所示。
a(b);
function a(callback) {
// do something
callback();
}
function b() {
// do next
}
先做a()
,再做b()
。
我想串联 两个以上的任务。
由于我正在处理相当大的功能,所以我正在寻找类似的东西:
a(b(c));
先做a()
,再做b()
,再做c()
。
但是我没有成功。参见 Fiddle
是否有一种简单的方法可以做到这一点,也许不需要 Promises?
您正在立即调用 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())();
可以使用回调来确定两个任务的顺序,如下所示。
a(b);
function a(callback) {
// do something
callback();
}
function b() {
// do next
}
先做a()
,再做b()
。
我想串联 两个以上的任务。 由于我正在处理相当大的功能,所以我正在寻找类似的东西:
a(b(c));
先做a()
,再做b()
,再做c()
。
但是我没有成功。参见 Fiddle
是否有一种简单的方法可以做到这一点,也许不需要 Promises?
您正在立即调用 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())();