国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 課堂 > 小程序 > 正文

詳解將微信小程序接口Promise化并使用async函數

2020-03-21 15:49:54
字體:
來源:轉載
供稿:網友

前言

小程序一直到現在接口還是和剛開始一樣使用的回調函數的方式,如果想在小程序中不使用框架的情況下使用Promise+Async怎么辦呢?

2019最新解決方案

1. 將接口Promise化

首先建一個文件wxPromise.js

const promisify = name => option => { return new Promise((resolve, reject) =>  wx[name]({   ...option,   success: resolve,   fail: reject,  }) )}const wxPro = new Proxy(wx, { get(target, prop) {  return promisify(prop) }})export default wxPro

2.使用regeneratorRuntime讓小程序兼容async函數

在github項目regenerator里下載packages/regenerator-runtime/runtime.js。

如果是最新版本的話引入后會報一個錯誤:

Function is not a function....

需要手動修改源碼:

去掉源碼最后的try-catch語句,并將開頭的var runtime改成var regeneratorRuntime。

如果不想修改則可以直接下載0.13.1版本的源碼。

最后

在想使用的頁面里引入:

import wxPro from './utils/wxPromise.js'import regeneratorRuntime from './utils/runtime.js'//app.jsApp({ async onLaunch() {  // wxPro.login().then((res) => {  //  console.log(res)  // })  const result = await wxPro.login()  console.log(result) }, globalData: {  userInfo: null }})

這樣就可以了,唯一有點麻煩的是每個要用的頁面都要引入一次。

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持VEVB武林網。


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 汶川县| 华容县| 都昌县| 水富县| 格尔木市| 英德市| 兴和县| 临夏市| 孟津县| 白玉县| 大荔县| 合山市| 苍山县| 攀枝花市| 定结县| 蒙自县| 宣武区| 麦盖提县| 通州区| 平阴县| 鄂托克前旗| 高淳县| 黄龙县| 泽州县| 彭阳县| 洮南市| 玛多县| 南宫市| 盐津县| 岑溪市| 获嘉县| 宝应县| 农安县| 麦盖提县| 昌都县| 平阳县| 福鼎市| 湛江市| 祥云县| 高要市| 莆田市|