// https://github.com/youngjuning/wx-promise-pro
// const asyncMethods = [
// 'canvasGetImageData',
// 'canvasPutImageData',
// 'canvasToTempFilePath',
// 'setEnableDebug',
// 'startAccelerometer',
// 'stopAccelerometer',
// 'getBatteryInfo',
// 'getClipboardData',
// 'setClipboardData',
// 'startCompass',
// 'stopCompass',
// 'addPhoneContact',
// 'startGyroscope',
// 'stopGyroscope',
// 'startBeaconDiscovery',
// 'stopBeaconDiscovery',
// 'getBeacons',
// 'startLocalServiceDiscovery',
// 'stopLocalServiceDiscovery',
// 'startDeviceMotionListening',
// 'stopDeviceMotionListening',
// 'getNetworkType',
// 'makePhoneCall',
// 'scanCode',
// 'getSystemInfo',
// 'vibrateShort',
// 'vibrateLong',
// 'getExtConfig',
// 'chooseLocation',
// 'getLocation',
// 'openLocation',
// 'chooseMessageFile',
// 'loadFontFace',
// 'chooseImage',
// 'previewImage',
// 'getImageInfo',
// 'saveImageToPhotosAlbum',
// 'compressImage',
// 'chooseVideo',
// 'saveVideoToPhotosAlbum',
// 'downloadFile',
// 'request',
// 'connectSocket',
// 'closeSocket',
// 'sendSocketMessage',
// 'uploadFile',
// 'login',
// 'checkSession',
// 'chooseAddress',
// 'authorize',
// 'addCard',
// 'openCard',
// 'chooseInvoice',
// 'chooseInvoiceTitle',
// 'getUserInfo',
// 'requestPayment',
// 'getWeRunData',
// 'showModal',
// 'showToast',
// 'hideToast',
// 'showLoading',
// 'hideLoading',
// 'showActionSheet',
// 'pageScrollTo',
// 'startPullDownRefresh',
// 'stopPullDownRefresh',
// 'setBackgroundColor',
// 'setBackgroundTextStyle',
// 'setTabBarBadge',
// 'removeTabBarBadge',
// 'showTabBarRedDot',
// 'hideTabBarRedDot',
// 'showTabBar',
// 'hideTabBar',
// 'setTabBarStyle',
// 'setTabBarItem',
// 'setTopBarText',
// 'saveFile',
// 'openDocument',
// 'getSavedFileList',
// 'getSavedFileInfo',
// 'removeSavedFile',
// 'getFileInfo',
// 'getStorage',
// 'setStorage',
// 'removeStorage',
// 'clearStorage',
// 'getStorageInfo',
// 'closeBLEConnection',
// 'closeBluetoothAdapter',
// 'createBLEConnection',
// 'getBLEDeviceCharacteristics',
// 'getBLEDeviceServices',
// 'getBluetoothAdapterState',
// 'getBluetoothDevices',
// 'getConnectedBluetoothDevices',
// 'notifyBLECharacteristicValueChange',
// 'openBluetoothAdapter',
// 'readBLECharacteristicValue',
// 'startBluetoothDevicesDiscovery',
// 'stopBluetoothDevicesDiscovery',
// 'writeBLECharacteristicValue',
// 'getHCEState',
// 'sendHCEMessage',
// 'startHCE',
// 'stopHCE',
// 'getScreenBrightness',
// 'setKeepScreenOn',
// 'setScreenBrightness',
// 'connectWifi',
// 'getConnectedWifi',
// 'getWifiList',
// 'setWifiList',
// 'startWifi',
// 'stopWifi',
// 'getBackgroundAudioPlayerState',
// 'playBackgroundAudio',
// 'pauseBackgroundAudio',
// 'seekBackgroundAudio',
// 'stopBackgroundAudio',
// 'getAvailableAudioSources',
// 'startRecord',
// 'stopRecord',
// 'setInnerAudioOption',
// 'playVoice',
// 'pauseVoice',
// 'stopVoice',
// 'getSetting',
// 'openSetting',
// 'getShareInfo',
// 'hideShareMenu',
// 'showShareMenu',
// 'updateShareMenu',
// 'checkIsSoterEnrolledInDevice',
// 'checkIsSupportSoterAuthentication',
// 'startSoterAuthentication',
// 'navigateBackMiniProgram',
// 'navigateToMiniProgram',
// 'setNavigationBarTitle',
// 'showNavigationBarLoading',
// 'hideNavigationBarLoading',
// 'setNavigationBarColor',
// 'redirectTo',
// 'reLaunch',
// 'navigateTo',
// 'switchTab',
// 'navigateBack'
// ]
// polyfill for finally
if(!Promise.prototype.finally) {
Promise.prototype.finally = function (callback) {
let P = this.constructor
return this.then(
value => P.resolve(callback()).then(() => value),
reason => P.resolve(callback()).then(() => { throw reason })
)
}
}
// core method
export const promisify = (api) => {
return (args = {}) => {
return new Promise((resolve, reject) => {
api({
fail: reject,
success: resolve,
...args,
})
})
}
}
// export const promisifyAll = () => {
// wx.pro = {}
// Object.keys(wx).forEach(key => {
// if (asyncMethods.indexOf(key) >= 0) {
// wx.pro[key] = promisify(wx[key])
// } else if (key !== 'createSignal') {
// wx.pro[key] = wx[key]
// }
// })
// }
使用
在app.js里弄成全局的
import { promisify } from './utils/wx-promise-pro.js'
wx.pro = {}
wx.pro.request = promisify(wx.request)
wx.pro.request({
url: 'https://api.miyamibao.com/v4/wechat/Binding/openidverfiy',
method: "post",
data: {
openid: openid
}
}).then( res => {
console.log(res)
if (res.statusCode === 200 || res.statusCode === 201) {
var data = res.data
if(data.data && data.data.code == "on"){
that.setData({
status: 1
})
that.getStudent()
// wx.setStorageSync('bind_status', 1)
}else{
that.setData({
status: 0
})
// wx.removeStorageSync('bind_status');
}
}else{
wx.showToast({
title: "绑定信息状态码:"+res.statusCode,
duration: 2000,
icon: 'none'
})
}
}).catch(err => {
wx.showToast({
title: "接口请求失败",
duration: 2000,
icon: 'none'
})
}).finally(() => {
wx.hideLoading()
})
// util.js
const formatTime = date => {
const year = date.getFullYear()
const month = date.getMonth() + 1
const day = date.getDate()
const hour = date.getHours()
const minute = date.getMinutes()
const second = date.getSeconds()
return [year, month, day].map(formatNumber).join('/') + ' ' + [hour, minute, second].map(formatNumber).join(':')
}
const formatNumber = n => {
n = n.toString()
return n[1] ? n : '0' + n
}
function compareVersion(v1, v2) {
v1 = v1.split('.')
v2 = v2.split('.')
const len = Math.max(v1.length, v2.length)
while (v1.length < len) {
v1.push('0')
}
while (v2.length < len) {
v2.push('0')
}
for (let i = 0; i < len; i++) {
const num1 = parseInt(v1[i])
const num2 = parseInt(v2[i])
if (num1 > num2) {
return 1
} else if (num1 < num2) {
return -1
}
}
return 0
}
module.exports = {
formatTime: formatTime,
compareVersion: compareVersion
}
网友评论