首页 > 其他 > 详细

将普通函数封装为Promise

时间:2020-03-07 12:57:38      阅读:855      评论:0      收藏:0      [点我收藏+]
问题描述

简单描述一下遇到的问题:原方法是一个对象的方法,这个对象对于我来说是黑盒,接受一个回调方法。而我想要一个能够返回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 = {
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)
})
}
}

调用:

1
2
3
test (image) {
return bridge.call('uploadImg', (res) => {console.log(res)}, 'imageName')
}

以上

将普通函数封装为Promise

原文:https://www.cnblogs.com/lijianming180/p/12433453.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!