天天看點

微信小程式 - async/await

下面隻是做一些介紹以及使用的原因,詳情介紹還請移步部落客:https://www.cnblogs.com/SamWeb/p/8417940.html

regenerator-runtime下載下傳:https://www.npmjs.com/package/regenerator-runtime

關于request的異步請求示範如下

微信小程式 - async/await
微信小程式 - async/await

使用async...await同步如下

微信小程式 - async/await
微信小程式 - async/await

微信小程式使用(其它例如VUE使用方式類似):

App.js

微信小程式 - async/await

Index.js(注意,引入的變量名不能随意改變,應為固定的“regeneratorRuntime”)-> 注意方法和函數調用的差別

  • 函數聲明: 

    async function foo() {}

  • 函數表達式: 

    const foo = async function() {}

  • 對象的方式: 

    let obj = { async foo() {} }

  • 箭頭函數: 

    const foo = async () => {}

微信小程式 - async/await
微信小程式 - async/await

關于$wx,也就是封裝的Promise方法,類似這樣的

//ES6    
    const $wx = url => {
      return new Promise((resolve, reject) => {
        wx.request({
          url,
          method: 'GET',
          header: {
            "content-type": "application/json"
          },
          success(res) {
            resolve(res)
          },
          fail(err) {
            reject(err)
          }
        })
      })
    }

//ES5
    function $wx(url){
      return new Promise((resolve, reject) => {
        wx.request({
          url,
          method: 'GET',
          header: {
            "content-type": "application/json"
          },
          success(res) {
            resolve(res)
          },
          fail(err) {
            reject(err)
          }
        })
      })
    }

           

  

微信小程式原生不支援async/awit,類似支援的平台有wepy,uni-app等架構....

繼續閱讀