范围:深圳亚博app开发,软件定制开发,亚博app软件开发公司,深圳软件外包公司.TEL:3447249690
当前位置:首页 > app小程序

亚博-微信小程序异步API转化Promise,简化异步编程

07-05 亚博APP
摘要:把微信小法式异步API转化为Promise。用Promise处置异步操作现实很是便利。

把微信小法式异步API转化为Promise。用Promise处置异步操作现实很是便利。微信官方没有给出Promise API来处置异步操作,而官方API异步的又很是多,这使很多异步编程会层层回调,代码一复杂,回调起来就很是复杂。假如把微信官方的异步API转化为Promise,便利处置(多)异步操作。

预备转化后的方式并表露出

// /utils/wx-promise.js

importtoPromisefrom\'/module/to-promise/src/index\'

consttoPromiseWx = toPromsie(wx)

exportconstrequest = toPromiseWx(\'requset\')

exportconstgetLocation = toPromiseWx(\'getLocation\')

exportconstsetStorage = toPromiseWx(\'setStorage\')//export 其他你项目中可能用到的异步API

在其他文件中利用 在App.js中利用:

//App.js

import { request } from\'./utils/wx-promise.js\'

App({

onLanuch:()=>{

request({ url:\'http://api.yourapi.com\'})

.then(()=>{

//成功后处置

})

.then(()=>{

//掉败后处置

}) }})

在其他page中利用:

///page/index.js

import { 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(()=>{

//保留掉败

})}})

width=700

其他更多更具体用法,直接粘贴README了,以下。

to-promise是一个转换微信小法式异步API为Promise的一个东西库

长处:

避免小法式异步编程屡次回调带来的过量回调致使逻辑不清楚,篇幅太长等问题。

借助在Promise异步编程特点,撑持链式操作,像同步一样写异步。

转化后得API几近和微信官方API一样。

利用方式:

安装

利用git安装到项目根目次/module,

git clonehttps://github.com/tornoda/to-promise

或直接下载放入项目目次下如:/module

在需要用到的处所引入

importtoPromisefrom\'/module/to-promise/src/index\'绑定微信全局对象(wx)到函数,以即可以取到微信得APIconst toPromiseWx = toPromise(wx)最先转化你需要得异步API//apiName为微信异步方式名,如对wx.request()进行转化constrequest = toPromiseWx(\'request\')//直接利用request方式关在Promise对象的利用,请拜见Promise

API

toPromise(global)

参数

(wx):wx全局对象。即toPromise(wx)如许挪用

返回

(function): 参数(string)为小法式异步方式名。返回一个函数,该函数的参数与返回值以下。

参数:(object) 对应wx小法式异步方式中的参数(OBJECT)除去success与fail后的对象。例如:

官方APIwx.getLocation(OBJECT)的OBJECT接管以下属性:typealtitudesuccessfailcomplete,那末去除(successfail)后为:typealtitudecomplete。

返回: (pending Promsise) 返回一个未知状况的Promise对象,在该对象上挪用.then(onFulfilled, onRejected)方式来处置对用成功或掉败的环境。onFulfilled为要求成功后挪用的回调函数,参数为返回值,onRejected为要求掉败后的回调函数,参数为返回的毛病信息。

const getLocation = toPromiseWx(\'getLocation\')

getLocation({

type:\'wgs84\',

altitude:true,

complete:()=>{console.log(\'to-promsise is awesome\')

}

})

.then((res)=>{//dosomethingifsucceed},

(err)=>{//dosomethingiffailed})

与下面官方挪用等价

wx.getLocation({

type:\'w亚博gs84\',

altitude:true,

complete:()=>{console.log(\'to-promsise is awesome\') },

success:(res)=>{//dosomethingifsucceed},

fail:(err)=>{//dosomethingiffailed}

})

利用场景举例

单次异步伐用,拜见API最后

屡次异步操作挪用,且每下一次挪用城市用到前一次返回的成果。

如:取得GPS信息后,按照GPS信息获得气候信息,获得气候信息后立马存入localStorage。

保举浏览:微信小法式开辟教程微信小法式

版权保护: 本文由 亚博app开发 原创
转载请保留链接: http://www.cqsLin.com

关于我们      深圳亚博定制开发软件有限公司,自2013年成立以来,为上千家企业提供软件外包、系统软件开发、亚博app开发、微信公众号开发、深圳亚博小程序开发等各种优秀的软件定制开发服务.关键词:软件外包公司、手机软件开发、app制作开发、手机亚博app开发、小程序开发公司【TEL】:3447249690 微信:3447249690 QQ:3447249690
  • 1578文章总数
  • 13访问次数
  • 建站天数