默认情况下,小程序官方提供的异步API都是基于回调函数实现的,这样就容易造成回调地狱的问题,代码的可读性、维护性差。API Promise化,指的是通过额外的配置,将官方提供的、基于回调函数的异步 API,升级改造为基于 Promise 的异步 API,从而提高代码的可读性、维护性,避免回调地狱的问题。实现API Promise化主要依赖于miniprogram-api-promise这个第三方的州戚 npm 包。首先需要确认已经正确安装了node,使用的开发工具为微信官方的微伍谨信开发者工具。
在项目文件夹下对项目进行初始化,执行npm init -y 此时项目文件夹下会创建package.json文件。 执行npm i --save miniprogram-api-promise安装第三方包。此时会在项目根目录下创建node_modules文件夹。 选择 工具-->构建npm 等待构建完成点击确定,此时会创建miniprogram_npm文件夹。在入口文件app.js中按需引入。
import {promisifyAll} from "miniprogram-api-promise"
const wxp=wx.p={}
promisifyAll(wx,wxp)
然后就可以通过wx.p来调用promise化的api。举个例子在test.js文件中
async getTestData(){
const {data:res}=await wx.p.request({methods:'册橘陵GET',url: 'https://xxx.xxx.xx', })
在小程序开发时,衡胡我们请求数据,就需要使用promise或者async处理异步请求,避免掉入回调地狱。而async号称是解决回调地狱的最终方案,平时我也是比较喜欢使用的,但是作为es7的语法,小程序的开掘判发者工具貌似不支持es7
那么要如何让开发工具支持呢?
(注:不可全局引入,否则无效)
该方法存在兼容性,若要适配某些旧的手机或者小程序时,请勿使用判拦改本方法
2.使用promise处理异步
3.使用async
方法一:rpn.js:使用rpn.js实现eval函数功能
*** 作链接:网页链接
方法二:
(1)使用Underscore.js: *** 作链接:网页链接
(2)使用Immutable.js: *** 作链接:网页链接
(3)使用UUID、Base64、Chance: *** 作链接:网页链接
扩展微信小程序框架功能(1)——Promise
ES6 对 Promise 有了原生的支持,但微信开发者工具更新版本(0.11.112200)后, 移除了开发者工具对 ES6 中Promise 特性原生的支持, 需要引入第三方的 Promise 库。
扩展微信小程序框架功能(2)——Generator
Generator函数是ES6提供的一种异步编程解决方案,语法行为与传统函数完全不同。
扩展微信小程序框架功能(3)——函数功能增强
Underscore.js 和 Lodash 是最常用的JavaScript库。
扩展微信小程序框架功能(4)——Immutable.js
Immutable.js 是 Facebook 开发的不可变数据集合。Immutable
Data(不可变数据)一旦创建就不能被修改。通过使用Immutable
Data,可以更容易的处理缓存、回退、数据变化检测等问题,应用开发更简单。
扩展微信小程序框架功能(5)——Redux
Redux 是 JavaScript 状态容器,提供可预测化的状态管理。
扩展微信小程序框架功能(6)—日期时间
Moment.js是一个JavaScript的日期、时间处理工具类,其对于JavaScript的日期时间处理功能非常强悍和全面。可以用在浏览器环境中使用,也可以在Node.js中。
扩展微信小程序框架功能(7)——正则表达式
XRegExp 是一个开源的 JavaScript库,提供一个参数化、可扩展的支持各种浏览器的正则表达式的实现库,支持附加语法数纯、标志以及方法。
扩展微信小程序框架功能(8)—此握—Xml处理
x2js是一个 实现 XML 与 JavaScript 对象之间森毕庆相互转换的工具库。
扩展微信小程序框架功能(9)——加解密
node-uuid可以快速地生成符合规范 的 UUID。js-base64可以实现Base64编码和解码。crypto-js可以非常方便地在 JavaScript 进行加解密。
扩展微信小程序框架功能(10)——测试辅助
Chance是一个 JavaScript 随机数生成工具。Mock.js可以生成随机数据,拦截 Ajax 请求。
方法三:moment
*** 作链接:网页链接
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)