callback 转换到 promise

时间:2023-02-20 20:05:26

最近项目迭代,从express到koa,面对callback,想偷懒,就想到了Proxy对象

     new Proxy(docker,{
get : function (obj,name) {
return function (arg) {
let length = arguments.length
if (length<=1) {
return obj[name]
} arg = Array.prototype.slice(0)
return new Promise(function(resolve,reject){
arg[length-1] = function(err,data){
if(err)return reject(err)
resolve(data)
}
})
}
}
})

有这么一个基本的思路,由于局限较多,而且具体执行如何还是不知,考虑到可能的性能原因,还是用了 bluebird模块。