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

首頁 > 編程 > JavaScript > 正文

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

2019-11-19 11:04:33
字體:
來源:轉載
供稿:網友

前言

小程序一直到現在接口還是和剛開始一樣使用的回調函數的方式,如果想在小程序中不使用框架的情況下使用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 }})

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

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

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 汕头市| 公主岭市| 蓝山县| 高雄市| 梁山县| 灯塔市| 顺昌县| 信丰县| 泸水县| 阿合奇县| 比如县| 孙吴县| 甘德县| 台州市| 双江| 乌兰察布市| 韶关市| 赤壁市| 涡阳县| 府谷县| 灵寿县| 鄂尔多斯市| 汶上县| 沛县| 孙吴县| 宽甸| 当雄县| 沁阳市| 稷山县| 富平县| 正阳县| 大庆市| 腾冲县| 许昌县| 平塘县| 股票| 二连浩特市| 天长市| 揭西县| 宜君县| 施甸县|