2017-01-23 42 views
-1

我有3個功能。串聯或並聯呼叫多個ajax請求

load_graphs('national','','container-natl-rates','container-natl-counts') 
load_graphs('division','Western','container-west-rates','container-west-counts') 
load_graphs('division','Eatern','container-east-rates','container-east-counts') 

load_graphs是執行ajax調用並創建圖形的函數。

目前,這個調用是異步完成的,但是我想在完成每個單獨的調用之後執行回調。

+1

你的意思是你不知道如何寫回調還是什麼? –

+0

你能修改load_graphs嗎? – ajputnam

+0

我有接近6個函數被調用一個接一個,所以我目前的方法看起來很亂 – user1050619

回答

0

一種選擇是使用回調,像這樣:

function load_graphs(arg1, arg2, arg3, arg4, done) { 
    // then do stuff and when that stuff is done 
    // call your callback (in this case I named it "done") 
    done(); 
} 

然後在你的方法調用

load_graphs('national','','container-natl-rates','container-natl-counts', function() { 
    // first load_graphs() is complete 
    load_graphs('division','Western','container-west-rates','container-west-counts', function() { 
     // second load_graphs() is complete 
     load_graphs('division','Eatern','container-east-rates','container-east-counts', function() { 
      // third load_graphs() is complete 
     }) 
    }) 
}) 

還有其他更高級的選項,比如使用第三方工具,如asyncco

希望這會有所幫助

0

如果您無法更改load_graphs並插入回撥呼叫,則必須使用一些其他偵聽程序來指示load_graphs何時完成。

例如,您說該函數繪製圖形,因此可能會有一些影響可以跟蹤。也許一個<div>改變它的寬度,也許一個全局變量被設置爲當前時間戳值。應該發生一些可以捕獲的事情,而且這取決於您未提供的其他代碼。

在第一個load_graphs呼叫後,設置一個setInterval來連續檢查這樣的指標,然後依次運行下一個load_graphs調用。