Skip to content
This repository has been archived by the owner on Mar 7, 2024. It is now read-only.

Commit

Permalink
Merge pull request #84 from remaxjs/feature/promisify
Browse files Browse the repository at this point in the history
feat: 将小程序api promise 化
  • Loading branch information
yesmeck authored Aug 11, 2019
2 parents f9e0052 + f60ff91 commit 1522486
Show file tree
Hide file tree
Showing 3 changed files with 50 additions and 19 deletions.
11 changes: 7 additions & 4 deletions packages/remax/src/adapters/alipay/api.ts
Original file line number Diff line number Diff line change
@@ -1,3 +1,6 @@
// TODO promise 化补充完整
import promisify from '../../utils/promisify';

export const getAppStub = getApp;

export const addCardAuth = my.addCardAuth;
Expand All @@ -7,7 +10,7 @@ export const canIUse = my.canIUse;
export const chooseAlipayContact = my.chooseAlipayContact;
export const chooseCity = my.chooseCity;
export const chooseContact = my.chooseContact;
export const chooseImage = my.chooseImage;
export const chooseImage = promisify(my.chooseImage);
export const chooseLocation = my.chooseLocation;
export const choosePhoneContact = my.choosePhoneContact;
export const clearStorage = my.clearStorage;
Expand Down Expand Up @@ -73,9 +76,9 @@ export const hideToast = my.hideToast;
export const loadFontFace = my.loadFontFace;
export const makePhoneCall = my.makePhoneCall;
export const multiLevelSelect = my.multiLevelSelect;
export const navigateBack = my.navigateBack;
export const navigateBackMiniProgram = my.navigateBackMiniProgram;
export const navigateTo = my.navigateTo;
export const navigateBack = promisify(my.navigateBack);
export const navigateBackMiniProgram = promisify(my.navigateBackMiniProgram);
export const navigateTo = promisify(my.navigateTo);
export const navigateToMiniProgram = my.navigateToMiniProgram;
export const notifyBLECharacteristicValueChange =
my.notifyBLECharacteristicValueChange;
Expand Down
33 changes: 18 additions & 15 deletions packages/remax/src/adapters/wechat/api.ts
Original file line number Diff line number Diff line change
@@ -1,3 +1,6 @@
// TODO promise 化补充完整
import promisify from '../../utils/promisify';

export const getAppStub = getApp;

export const canIUse = wx.canIUse;
Expand All @@ -20,17 +23,17 @@ export const offAppShow = wx.offAppShow;
export const offAppHide = wx.offAppHide;
export const setEnableDebug = wx.setEnableDebug;
export const getLogManager = wx.getLogManager;
export const switchTab = wx.switchTab;
export const reLaunch = wx.reLaunch;
export const redirectTo = wx.redirectTo;
export const navigateTo = wx.navigateTo;
export const navigateBack = wx.navigateBack;
export const showToast = wx.showToast;
export const showModal = wx.showModal;
export const showLoading = wx.showLoading;
export const showActionSheet = wx.showActionSheet;
export const hideToast = wx.hideToast;
export const hideLoading = wx.hideLoading;
export const switchTab = promisify(wx.switchTab);
export const reLaunch = promisify(wx.reLaunch);
export const redirectTo = promisify(wx.redirectTo);
export const navigateTo = promisify(wx.navigateTo);
export const navigateBack = promisify(wx.navigateBack);
export const showToast = promisify(wx.showToast);
export const showModal = promisify(wx.showModal);
export const showLoading = promisify(wx.showLoading);
export const showActionSheet = promisify(wx.showActionSheet);
export const hideToast = promisify(wx.hideToast);
export const hideLoading = promisify(wx.hideLoading);
export const showNavigationBarLoading = wx.showNavigationBarLoading;
export const setNavigationBarTitle = wx.setNavigationBarTitle;
export const setNavigationBarColor = wx.setNavigationBarColor;
Expand Down Expand Up @@ -59,8 +62,8 @@ export const offWindowResize = wx.offWindowResize;
export const onKeyboardHeightChange = wx.onKeyboardHeightChange;
export const getSelectedTextRange = wx.getSelectedTextRange;
export const request = wx.request;
export const downloadFile = wx.downloadFile;
export const uploadFile = wx.uploadFile;
export const downloadFile = promisify(wx.downloadFile);
export const uploadFile = promisify(wx.uploadFile);
export const sendSocketMessage = wx.sendSocketMessage;
export const onSocketOpen = wx.onSocketOpen;
export const onSocketMessage = wx.onSocketMessage;
Expand Down Expand Up @@ -95,10 +98,10 @@ export const previewImage = wx.previewImage;
export const getImageInfo = wx.getImageInfo;
export const compressImage = wx.compressImage;
export const chooseMessageFile = wx.chooseMessageFile;
export const chooseImage = wx.chooseImage;
export const chooseImage = promisify(wx.chooseImage);
export const saveVideoToPhotosAlbum = wx.saveVideoToPhotosAlbum;
export const createVideoContext = wx.createVideoContext;
export const chooseVideo = wx.chooseVideo;
export const chooseVideo = promisify(wx.chooseVideo);
export const stopVoice = wx.stopVoice;
export const setInnerAudioOption = wx.setInnerAudioOption;
export const playVoice = wx.playVoice;
Expand Down
25 changes: 25 additions & 0 deletions packages/remax/src/utils/promisify.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
// TODO: type定义
function promisify(api: (config: any) => void) {
return (config: any = {}) =>
new Promise((resolve, reject) => {
api({
...config,
success: (res: any) => {
if (typeof config.success === 'function') {
config.success(res);

resolve(res);
}
},
fail: (res: any) => {
if (typeof config.fail === 'function') {
config.fail(res);

reject(res);
}
},
});
});
}

export default promisify;

0 comments on commit 1522486

Please sign in to comment.