異步回調(diào)是js的一大特性,理解好用好這個特性可以寫出很高質(zhì)量的代碼。分享一些實際用的一些異步編程技巧。
1.我們有些應(yīng)用環(huán)境是需要等待兩個http請求或IO操作返回后進行后續(xù)邏輯的處理。而這種情況使用回調(diào)嵌套代碼會顯得很難維護,而且也沒有充分使用js的異步優(yōu)勢。
看下實例(為了大家容易理解使用了jq作為示例)
 $.get("獲取數(shù)據(jù)1.html",function(data,status){   $.get("獲取數(shù)據(jù)2.html",function(data1,status1){    //使用 data 和data1邏輯  }); });
這種代碼明顯需要等待上個ajax請求返回后才會進行第二個請求,效率很低,而且回調(diào)嵌很不利于邏輯。我們可以使用計數(shù)器的方式,每完成一個請求計數(shù)器加1 當計數(shù)器等于2時執(zhí)行回調(diào)邏輯
var get_datavar get-data1function next(){  //使用 data 和data1邏輯}$.get("獲取數(shù)據(jù)1.html",function(data,status){  get_data=data  (++over === all) && (next()); });$.get("獲取數(shù)據(jù)2.html",function(data1,status1){  get_data1=data1  (++over === all) && (next());   }); 這種方式兩個http并行發(fā)送,極大的提高了效率
新聞熱點
疑難解答