国产探花免费观看_亚洲丰满少妇自慰呻吟_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 }})

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

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

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 马山县| 庄浪县| 林甸县| 乐清市| 鞍山市| 海宁市| 牟定县| 五河县| 珠海市| 临潭县| 六安市| 永靖县| 葵青区| 札达县| 区。| 盖州市| 江达县| 盐源县| 临沧市| 登封市| 河北区| 邵阳县| 滁州市| 平塘县| 柳林县| 监利县| 麦盖提县| 图片| 大同市| 尚义县| 铁岭市| 紫云| 永寿县| 达日县| 蒙阴县| 洪江市| 盐池县| 繁峙县| 新建县| 龙游县| 都昌县|