JS中promise化微信小程序api
promise化的原因
微信小程序的api用的是對象參數(shù)回調(diào)模式,很容易造成回調(diào)地獄,代碼難以閱讀,判斷,修改 和調(diào)試.
微信小程序api示例
// 獲取用戶信息
wx.getSetting({
success: res => {
if (res.authSetting['scope.userInfo']) {
// 已經(jīng)授權(quán),可以直接調(diào)用 getUserInfo 獲取頭像昵稱,不會彈框
wx.getUserInfo({
success: res => {
// 可以將 res 發(fā)送給后臺解碼出 unionId
this.globalData.userInfo = res.userInfo
}
})
}
}
})
可以看出兩層的時候,代碼就很別扭了
promise化小程序
編寫一個可以promise小程序api的公用函數(shù)
function promisify (method, options = {}) {
return new Promise((resolve, reject) => {
// 將options對象賦值 然后再傳給下面調(diào)用的方法中
options.success = resolve
options.fail = err => {
reject(err)
}
wx[method](options)
})
}
使用示例
傳遞的額外參數(shù)通過對象解構(gòu)方式傳遞
promisify('getUserInfo')
.then((res) => console.log(res))
.catch((err) => {console.error(err)})
promisify('navigateTo', { url })
相關(guān)文章
uniapp中table表格設(shè)置寬度無效的原因以及解決方法
項目中遇到table表格單元格不整齊、錯位等情況,下面這篇文章主要給大家介紹了關(guān)于uniapp中table表格設(shè)置寬度無效的原因以及解決方法,文中通過實例代碼介紹的非常詳細,需要的朋友可以參考下2023-04-04
解決wx.onMenuShareTimeline出現(xiàn)的問題
本文主要介紹解決wx.onMenuShareTimeline出現(xiàn)的問題,這里提供了示例代碼作為參考,有需要的小伙伴可以參考下2016-08-08
JavaScript限定范圍拖拽及自定義滾動條應(yīng)用(3)
這篇文章主要介紹了JavaScript限定范圍拖拽及自定義滾動條應(yīng)用的相關(guān)資料,具有一定的參考價值,感興趣的小伙伴們可以參考一下2017-05-05
JavaScript動態(tài)創(chuàng)建form表單并提交的實現(xiàn)方法
這篇文章主要介紹了JavaScript動態(tài)創(chuàng)建form表單并提交的實現(xiàn)方法,涉及JavaScript動態(tài)創(chuàng)建頁面元素及模擬表單提交的技巧,需要的朋友可以參考下2015-12-12
使用Function.apply()的參數(shù)數(shù)組化來提高 JavaScript程序性能的技巧
這篇文章主要介紹了使用Function.apply()的參數(shù)數(shù)組化來提高 JavaScript程序性能的技巧,對js function apply相關(guān)知識感興趣的朋友一起學習吧2015-12-12

