我有點擊事件,調用FireCallBackEvents
,並從那裏我傳遞的函數的數組都是回調。現在我想在function a()
之後撥打function b()
,這給出了我通過setTimeout()
撥打電話的回撥結果。我期望它會延遲給出結果。如何使循環等待,直到回調回應價值
現在在下面的代碼中調用函數b和c之後調用第一個函數callback的alert。
這只是我真實代碼的一個示例。
function FireCallBackEvents(){
generalizeCallBack([a,b,c]);
}
function a(parameter1, parameter2,callback){
alert("Hello World: " + parameter1 + " : " + parameter2);
setTimeout(function(){callback("12")},600);
}
function b(parameter1, parameter2,callback){
alert("Hello World1: " + parameter1 + " : " + parameter2);
callback("123");
}
function c(parameter1, parameter2, callback){
alert("Hello World2: " + parameter1 + " : " + parameter2);
callback("1234");
}
function generalizeCallBack(arrayOfFunctions){
for(var i = 0; i < arrayOfFunctions.length; i++){
arrayOfFunctions[i]("1","2",function(we){
alert(we);
});
}
}
考慮使用jQuery「延遲對象」:http://www.vasanthk.com/jquery-promises-and-deferred-objects/ – paulsm4
延遲不會幫助,因爲我試圖推廣回調函數,所以會有容易理解,因爲這是3個函數的例子我有20個函數在回調中會導致太多')};'在函數的末尾 – Kirtesh
使用延遲將使我的程序更復雜 – Kirtesh