0
点赞
收藏
分享

微信扫一扫

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

// utils/utils.js

  /** 

  * requestPromise用于将wx.request改写成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)去处理即可,逻辑清晰。

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



举报

相关推荐

0 条评论