包装在承诺的JavaScript通用功能

这个问题在这里已经有了答案:

  • 如何将现有的回调API转换为承诺? 17个答案

  • 例如我们可以使用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

    上一篇: Wrap in promise JavaScript generic function

    下一篇: Node.JS Async / Await Dealing With Callbacks?