[微信小程序]Promise解決連續網絡請求

Promise解決連續網絡請求

在調用API時,當遇到連續調用,並且需要上一個API調用的結果,或者必須等上一個請求完成後才能繼續請求,通常的延時函數並不能解決辦法,因爲如果上一個請求較長,超過設置的等待時間,同樣會出現問題,所以通常會使用callback()回調函數,但是在代碼的語義理解上會比較困難,尤其是多重的調用會形成所謂的“回調地獄”。因此,可以採用Promise對象解決這種網絡異步請求問題。

在wepy框架中默認對小程序提供的API進行了Promise處理
wepy官方文檔https://tencent.github.io/wepy/document.html#/?id=%E4%BB%A3%E7%A0%81%E8%A7%84%E8%8C%83

使用Promise。 框架默認對小程序提供的API全都進行了 Promise 處理,甚至可以直接使用async/await等新特性進行開發

示例:

var this = me;
wepy.request({
	//調用apiA
})
.then(res =>{
	me.dataA = res.data;
	me.apply();
	return wepy.request({
		//調用apiB
	})
})
.then(res =>{
	me.dataB = res.data;
	me.apply();
})
//如果需要繼續調用,則繼續引用

這樣寫的話代碼就完全可以從字面意思上來理解整個網絡請求流程,先調用A,當A調用完之後,再調用B,整個過程清晰明瞭,並且更符合編程邏輯。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章