zoukankan      html  css  js  c++  java
  • 微信小程序开发(十二)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,拿来即用。

  • 相关阅读:
    2021.6.7
    2021.6.4
    2021.6.3
    2021.6.2 团队第二阶段冲刺第十天
    2021.6.1 团队第二阶段冲刺第九天
    2021.5.31 团队第二阶段冲刺第八天
    2021.5.30 团队第二阶段冲刺第七天
    逻辑卷的使用
    磁盘阵列
    磁盘配额
  • 原文地址:https://www.cnblogs.com/aaronthon/p/11698201.html
Copyright © 2011-2022 走看看