包裹在承诺的JavaScript通用函数
如何将可以同步/同步function的函数封装在promise中?
我已经打电话给如下function
action[fn](req, res);
在函数fn(在下面的例子中)可以在里面(我使用dynamic调用每个函数)同步或者像下面那样的同步,
- 它如何推荐包装在承诺。
- 如何处理错误,如果有…
我使用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另一个方法来完成响应,并使用方法运行的承诺。 祝你好运!