简单描述一下遇到的问题:原方法是一个对象的方法,这个对象对于我来说是黑盒,接受一个回调方法。而我想要一个能够返回promise的方法,从而方便异步操作,因此我进行了封装,在这记录一下:
12345
const testEvent = { uploadImg: (callback) => { setTimeout(callback('uploadImg'), 100) }}
封装方法:
123456789101112131415
const bridge = { call: 大专栏 将普通函数封装为Promiseunction">(method, callback, ...arvg) => { return new Promise((resolve, reject) => { const realCallback = (...arvg) => { try { resolve(callback(...arvg)) } catch (e) { reject(e) } } const callbackId = window.callBackArr.push(realCallback) - 1 testEvent[method](...arvg, callbackId) }) }}
调用:
123
test (image) { return bridge.call('uploadImg', (res) => {console.log(res)}, 'imageName')}
以上
将普通函数封装为Promise
原文:https://www.cnblogs.com/lijianming180/p/12433453.html