繁体   English   中英

如何保证?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM