码迷,mamicode.com
首页 > 其他好文 > 详细

将普通函数封装为Promise

时间:2020-03-07 13:04:01      阅读:379      评论:0      收藏:0      [点我收藏+]

标签:param   number   ade   tab   函数   real   const   img   对象   

问题描述

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

标签:param   number   ade   tab   函数   real   const   img   对象   

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

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!