微信小程式:處理非同步問題和promise物件的使用淺析
阿新 • • 發佈:2019-01-04
微信小程式為了提高使用者的體驗,請求皆為非同步請求。但是在某些場景下,前面的請求回來的資料,有可能作為後面請求的基礎,或者請求提交的資料內容,就會出現銜接不上問題。例如獲取使用者的資訊的API:wx.getUserInfo(),就必須在登入狀態下,即先要呼叫wx.login()介面,先登入,後獲取使用者資訊,那麼一般的處理的方法是:將wx.getUserInfo()放在wx.login()的success回撥函式裡面,問題是可以解決,但是函式的巢狀導致,程式碼整潔性問題,也降低了可讀性。
那麼問題就來了,怎麼解決呢?
1.使用promist物件:ES6就為 我們提供瞭解決問題的辦法:Promise物件!!!(詳見大牛的教程 :http//es6.ruanyifeng.com/#docs/promise)
2.使用箭頭函式
function fun1(id,callback){
callback && callback(id);
}
fun1(id,(callbak)=>{
console.log(id);
})