微信小程序开发(十二)Promise将异步改成同步

// utils/utils.js

  /** 小程序

  * requestPromise用于将wx.request改写成Promise方式 promise

  * @param:{string} myUrl 接口地址 框架

  * @return: Promise实例对象 异步

  */ 函数

const requestPromise = myUrl => { // 返回一个Promise实例对象 
  return new Promise((resolve, reject) => { wx.request({ url: myUrl, success: res => resolve(res) }) }) } module.exports = { requestPromise: requestPromise } // pages/test/test.js // 导入util.js文件
const utilApi = require('../../utils/util.js') Page({ data: { myData: '' }, // loadMyData函数用于打印myData的值 
 loadMyData() { console.log('获取到的数据为:' + this.data.myData) }, // 生命周期函数onload用于监听页面加载 
 onLoad: function() { utilApi.requestPromise('http://172.20.10.10:8080/wx?name=小明&oaid=xiaoming') // 使用.then处理结果 
  .then(res => { console.log(res.data) this.setData({ myData: res.data }) console.log(this.data.myData) this.loadMyData() }) } })

当有多个异步请求时,直接不断地.then(fn)去处理便可,逻辑清晰。ui

固然,这里只是写了一个最简单的Promise函数,还不完整。更完整的Promise化wx.request,等之后业务须要再完善吧。另外各类小程序开发框架也都有了现成的promise化API,拿来即用。this

相关文章
相关标签/搜索