JS中promise化微信小程序api
promise化的原因
微信小程序的api用的是對(duì)象參數(shù)回調(diào)模式,很容易造成回調(diào)地獄,代碼難以閱讀,判斷,修改 和調(diào)試.
微信小程序api示例
// 獲取用戶信息
wx.getSetting({
success: res => {
if (res.authSetting['scope.userInfo']) {
// 已經(jīng)授權(quán),可以直接調(diào)用 getUserInfo 獲取頭像昵稱,不會(huì)彈框
wx.getUserInfo({
success: res => {
// 可以將 res 發(fā)送給后臺(tái)解碼出 unionId
this.globalData.userInfo = res.userInfo
}
})
}
}
})
可以看出兩層的時(shí)候,代碼就很別扭了
promise化小程序
編寫一個(gè)可以promise小程序api的公用函數(shù)
function promisify (method, options = {}) {
return new Promise((resolve, reject) => {
// 將options對(duì)象賦值 然后再傳給下面調(diào)用的方法中
options.success = resolve
options.fail = err => {
reject(err)
}
wx[method](options)
})
}
使用示例
傳遞的額外參數(shù)通過(guò)對(duì)象解構(gòu)方式傳遞
promisify('getUserInfo')
.then((res) => console.log(res))
.catch((err) => {console.error(err)})
promisify('navigateTo', { url })
- 微信小程序異步API為Promise簡(jiǎn)化異步編程的操作方法
- node.js中使用q.js實(shí)現(xiàn)api的promise化
- 微信小程序網(wǎng)絡(luò)層封裝的實(shí)現(xiàn)(promise, 登錄鎖)
- 如何利用ES6進(jìn)行Promise封裝總結(jié)
- NodeJS中利用Promise來(lái)封裝異步函數(shù)
- JavaScript異步回調(diào)的Promise模式封裝實(shí)例
- 微信小程序 es6-promise.js封裝請(qǐng)求與處理異步進(jìn)程
- 小程序api實(shí)現(xiàn)promise封裝過(guò)程解析
相關(guān)文章
uniapp中table表格設(shè)置寬度無(wú)效的原因以及解決方法
項(xiàng)目中遇到table表格單元格不整齊、錯(cuò)位等情況,下面這篇文章主要給大家介紹了關(guān)于uniapp中table表格設(shè)置寬度無(wú)效的原因以及解決方法,文中通過(guò)實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下2023-04-04
解決wx.onMenuShareTimeline出現(xiàn)的問(wèn)題
本文主要介紹解決wx.onMenuShareTimeline出現(xiàn)的問(wèn)題,這里提供了示例代碼作為參考,有需要的小伙伴可以參考下2016-08-08
兩種方法實(shí)現(xiàn)文本框輸入內(nèi)容提示消失
第一種方法:基于HTML5 input標(biāo)簽的新特性 - placeholder 。另外,x-webkit-speech 屬性可以實(shí)現(xiàn)語(yǔ)音輸入功能;第二種方法: 用span模擬,定位span,借助JS鍵盤事件判斷輸入,確定span里的內(nèi)容顯示隱藏2013-03-03
JavaScript限定范圍拖拽及自定義滾動(dòng)條應(yīng)用(3)
這篇文章主要介紹了JavaScript限定范圍拖拽及自定義滾動(dòng)條應(yīng)用的相關(guān)資料,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-05-05
JavaScript動(dòng)態(tài)創(chuàng)建form表單并提交的實(shí)現(xiàn)方法
這篇文章主要介紹了JavaScript動(dòng)態(tài)創(chuàng)建form表單并提交的實(shí)現(xiàn)方法,涉及JavaScript動(dòng)態(tài)創(chuàng)建頁(yè)面元素及模擬表單提交的技巧,需要的朋友可以參考下2015-12-12
使用Function.apply()的參數(shù)數(shù)組化來(lái)提高 JavaScript程序性能的技巧
這篇文章主要介紹了使用Function.apply()的參數(shù)數(shù)組化來(lái)提高 JavaScript程序性能的技巧,對(duì)js function apply相關(guān)知識(shí)感興趣的朋友一起學(xué)習(xí)吧2015-12-12

