You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 

69 lines
1.7 KiB

var each = require('./each');
var arrToMap = require('./arrToMap');
var startWith = require('./startWith');
var endWith = require('./endWith');
var extend = require('./extend');
var noPromiseMethods = arrToMap([
'stopRecord',
'getRecorderManager',
'pauseVoice',
'stopVoice',
'pauseBackgroundAudio',
'stopBackgroundAudio',
'getBackgroundAudioManager',
'createAudioContext',
'createInnerAudioContext',
'createVideoContext',
'createCameraContext',
'createMapContext',
'canIUse',
'startAccelerometer',
'stopAccelerometer',
'startCompass',
'stopCompass',
'onBLECharacteristicValueChange',
'onBLEConnectionStateChange',
'hideToast',
'hideLoading',
'showNavigationBarLoading',
'hideNavigationBarLoading',
'navigateBack',
'createAnimation',
'pageScrollTo',
'createSelectorQuery',
'createCanvasContext',
'createContext',
'drawCanvas',
'hideKeyboard',
'stopPullDownRefresh',
'arrayBufferToBase64',
'base64ToArrayBuffer'
]);
function needToPromisify(name) {
return (
!noPromiseMethods[name] &&
!startWith(name, 'on') &&
!endWith(name, 'Sync')
);
}
each(wx, function(fn, name) {
if (!needToPromisify(name)) return;
exports[name] = function(obj) {
return new Promise(function(resolve, reject) {
fn.call(
wx,
extend(obj, {
success: function(res) {
resolve(res);
},
fail: function(res) {
reject(res);
}
})
);
});
};
});
module.exports = exports;