[英]How to promisify?
我有这种功能:
someFunction.someMethod('param1', function(err, res1, res2) {
req.method(res1, function(err) {
if (!err) {
console.log('Yes!');
}
});
})(req, res); // <-- This one's the problem!
现在,当我尝试使它散播时:
var a = Promise.promisify(someFunction.someMethod);
a('param1').spread(function(res1, res2) {
console.log('Yes!');
}).catch(function(err) {
});
它不再起作用了,因为我不能将(req, res)
放在最后。 如何实现呢?
我会尝试这样的:
var a = Promise.promisify(function(arg, cb) {
someFunction.someMethod(arg, cb)(req, res);
});
a('param1').spread(function(res1, res2) {
console.log('Yes!');
}).catch(function(err) {
});
…是的,这很丑。 但是,此部分应用程序可能是信号,表明someFunction.someMethod('param1', …)
返回的函数应该被多次调用; 并且您的回调将被调用多次-您将无法再使用promise。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.