我有一个函数形式的数字:
function A() {
asychProcessA(
someCallBack();
)
}
function B() {
asychProcessB(
someCallBack();
)
}
function C () {
asychProcessC(
someCallBack();
)
}
有时我会想实现这些功能,如:
function A() {
asychProcessA(
functionB();
)
}
但我也想选择单独实现其中一个,并使用其他回调,如
function A() {
asychProcessA(
someOtherCallBack();
)
}
有人能建议一种优雅而多样的方式来设置它吗。我在这个项目中使用jQuery,所以这是公平的。
$。Deferred()似乎是通过下面的实现实现的。
function A(input) {
var def = $.Deferred();
asychProcessA(
someCallBack();
def.resolve(someInput);
)
return def.promise();
}
function B(input) {
var def = $.Deferred();
asychProcessB(
someCallBack();
def.resolve(someInput);
)
return def.promise();
}
//Implementation1: Use B() as call back for A()
A(someInput1).done(
function(){
B(someInput2);
}
);
//Implementation1: Use random() as call back for A()
A(someInput1).done(
function(){
random(someInput2);
}
);