包装在 promise JavaScript 泛型函数中

Wrap in promise JavaScript generic function

我如何用 promise 包装一个可以具有 sync/a-sync 功能的函数?

我调用了如下函数

action[fn](req, res);

in function fn(在下面的例子中)是 运行 里面可以有(我对每个函数都使用动态调用)sync or a-sync 就像下面的例子,

  1. How its recommended to wrap it in promise .
  2. How to handle errors if any...

我使用 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 库和 defer,像这样:

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 将在请求结束事件后解析,然后 res.end,但我建议创建另一个方法来完成响应并使用方法 运行 中的 promise。祝你好运!