国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 熱點(diǎn) > 微信 > 正文

微信小程序異步API為Promise簡化異步編程的操作方法

2024-07-22 01:17:28
字體:
供稿:網(wǎng)友

把微信小程序異步API轉(zhuǎn)化為Promise。用Promise處理異步操作有多方便,誰用誰知道。

微信官方?jīng)]有給出Promise API來處理異步操作,而官方API異步的又非常多,這使得多異步編程會(huì)層層回調(diào),代碼一復(fù)雜,回調(diào)起來就想砸電腦。

于是寫了一個(gè)通用工具,把微信官方的異步API轉(zhuǎn)化為Promise,方便處理(多)異步操作。

你可以這樣用:

準(zhǔn)備轉(zhuǎn)化后的方法并暴露出

// /utils/wx-promise.jsimport toPromise from '/module/to-promise/src/index'const toPromiseWx = toPromsie(wx)export const request = toPromiseWx('requset')export const getLocation = toPromiseWx('getLocation')export const setStorage = toPromiseWx('setStorage')//export 其他你項(xiàng)目中可能用到的異步API

在其他文件中使用

在App.js中使用:

//App.jsimport { request } from './utils/wx-promise.js'App({ onLanuch: () => {  request({ url: 'http://api.yourapi.com' })   .then(() => {    //成功后處理   })   .then(() => {    //失敗后處理   }) }})

在其他page中使用:

// /page/index.jsimport { request, setStorage } from '../utils/wx-promise.js'page({ onLoad: () => {  request({ url: 'http://api.yourapi.com' })   .then(() => {    //成功后處理   })   .then(() => {    //失敗后處理   }) }, onHide: () => {  setStorage({   key: 'yourkey',   data: 'yourvalue'  })   .then(() => {    //保存成功   })   .then(() => {    //保存失敗   }) }})

項(xiàng)目地址:to-promise

其他更多更具體用法,直接粘貼README了,如下。

to-promise是一個(gè)轉(zhuǎn)換微信小程序異步API為Promise的一個(gè)工具庫

優(yōu)點(diǎn):

避免小程序異步編程多次回調(diào)帶來的過多回調(diào)導(dǎo)致邏輯不清晰,篇幅過長等問題。
借助于Promise異步編程特點(diǎn),支持鏈?zhǔn)讲僮鳎裢揭粯訉懏惒健?br />轉(zhuǎn)化后得API幾乎和微信官方API一樣。

使用方法:

安裝

使用git安裝到項(xiàng)目根目錄/module,

git clone https://github.com/tornoda/to-promise或直接下載放入項(xiàng)目目錄下如:/module在需要用到的地方引入import toPromise from '/module/to-promise/src/index'綁定微信全局對(duì)象(wx)到函數(shù),以便可以取到微信得APIconst toPromiseWx = toPromise(wx)開始轉(zhuǎn)化你需要得異步API//apiName為微信異步方法名,如對(duì)wx.request()進(jìn)行轉(zhuǎn)化const request = toPromiseWx('request')//直接使用request方法

舉例:

import toPromise from '/module/to-promise/src/index'//轉(zhuǎn)換wx.getStorage()const getStorage = toPromsie(wx)('getStorage') //使用getStorage({ key: 'test' }) .then(  (res) => {   //res的值與wx.getStorage({ success: (res) => {} })中的res值一樣   //res = {data: 'keyValue'}   console.log(res.data)//控制臺(tái)打印storage中key對(duì)于的value   return res.data//如果需要繼續(xù)鏈?zhǔn)秸{(diào)用轉(zhuǎn)化后的api,需要把值顯示返回  },  (err) => {   //err的值與wx.getStorage({ success: (err) => {} })中的err值一樣   throw err  } )            
發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 尼玛县| 万全县| 桃源县| 青浦区| 五常市| 瑞丽市| 镇赉县| 织金县| 兴业县| 都江堰市| 印江| 米林县| 桐梓县| 宿迁市| 布尔津县| 达州市| 靖安县| 清徐县| 澄江县| 旅游| 上林县| 屯留县| 崇义县| 子洲县| 吉首市| 广元市| 红河县| 张家港市| 济源市| 电白县| 嘉祥县| 土默特右旗| 彭山县| 洪湖市| 芜湖市| 玉田县| 永兴县| 宁晋县| 鄱阳县| 定陶县| 电白县|