您當前位置>首頁 » 新聞資(zī)訊 » 小程序相關(guān) >
微信小程序 通(tōng)過promise/async await解決異步接口網絡延遲時間問(wèn)題的寫法
發表時間:2020-9-26
發布人:葵宇科技
浏覽次數:80
前提條件
1、微信小程序開發工具需要開啟Es6轉Es5(未驗證是否必要)、增強編譯
2、以wx.login()網絡請求為例
再根目錄下(xià)創建api文(wén)件夾,并再api文(wén)件夾下(xià)新建login.js
// api/login.js
module.exports = {
getLogin : (url, param) => {
return new Promise((resolve, reject) => {
wx.login({
success: res => {
// 發送 res.code 到後台換取 openId, sessionKey, unionId
console.log(res.code)
resolve()
}
})
})
}
}
在index.js中(zhōng)引入api/login.js文(wén)件
//index.js
//獲取應用實例
const apiLogin = require('../../api/login')
Page({
data: {
isDisplay :false,
title: "挑戰者"
},
>: function () {
this.init();
},
// 初始化
async init () {
await apiLogin.getLogin()
console.log("在code之後打印");
this.setData({
isDisplay :true,
title: "非挑戰者"
})
}
})
标題index.wxml中(zhōng)鍵入代碼
<view wx:if="{{isDisplay}}">
<p>"{{title}}"</p>
</view>
運行打印結果
1、工作台中(zhōng) “在code之後打印” 幾個(gè)字将會在wx.login中(zhōng)code打印後進行打印
2、頁面中(zhōng)的結果将在執行完wx.login()請求完畢以後再展示,并且展示
的title結果 是 “非挑戰者”