问题描述
简单描述一下遇到的问题:原方法是一个对象的方法,这个对象对于我来说是黑盒,接受一个回调方法。而我想要一个能够返回promise的方法,从而方便异步操作,因此我进行了封装,在这记录一下:
1 2 3 4 5
| const testEvent = { uploadImg: (callback) => { setTimeout(callback('uploadImg'), 100) } }
|
封装方法:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
| const bridge = { 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) }) } }
|
调用:
1 2 3
| test (image) { return bridge.call('uploadImg', (res) => {console.log(res)}, 'imageName') }
|
以上