包裹在承诺的JavaScript通用函数

如何将可以同步/同步function的函数封装在promise中?

我已经打电话给如下function

action[fn](req, res); 

在函数fn(在下面的例子中)可以在里面(我使用dynamic调用每个函数)同步或者像下面那样的同步,

  1. 它如何推荐包装在承诺。
  2. 如何处理错误,如果有…

我使用nodeJS应用程序

  run: function (req, res, filePath) { var writeStream = fs.createWriteStream(fileRelPath, {flags: 'w'}); req.pipe(writeStream); req.on("end", function () { console.log("Finish to update data file") }); res.end("File " + filePath + " saved successfully"); } 

例如我们可以使用Q库和延迟,如下所示:

 run: function (req, res, filePath) { var d = Q.defer(); var writeStream = fs.createWriteStream(fileRelPath, {flags: 'w'}); req.pipe(writeStream); req.on("end", function () { console.log("Finish to update data file"); d.resolve(); }); req.on("error", function (err) { d.reject(err); }); return d.promise.then(function(){ res.end("File " + filePath + " saved successfully"); }).catch(function(err){ //handle error }) } 

在这个代码中promise会在req结束事件之后parsing,然后res.end,但是我build议创build另一个方法来完成响应,并使用方法运行的承诺。 祝你好运!