包装在承诺的JavaScript通用功能
这个问题在这里已经有了答案:
例如我们可以使用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结束事件之后解析,然后res.end,但我建议创建另一个完成响应方法并使用方法运行的承诺。 祝你好运!
链接地址: http://www.djcxy.com/p/55527.html