javascript - promise 加入变革 promise 一切

标签 javascript node.js promise bluebird

我读到 promise 连接已被弃用 http://bluebirdjs.com/docs/api/promise.join.html

我的问题是

  • 我应该如何更改此代码以 promise 所有,以及是否有更好 编写此代码的方法(代码正在运行!),但我想得到您的反馈,但代码应该具有与下面相同的逻辑
  • 有一个使用 bluebird 来连接 js 的工具,它可以跟踪我是否有未完成的 promise 链

createProc = function (fPath) {
    "use strict";
    return Promise.join(
        fs.readFileAsync(fPath, 'utf8')
            .then(function (content) {
                return parseFile(content).getWeb();
            }),
        scan.findInUseAsync(12, 152, 'localhost')
            .then(envOptions.mod.bind(null, process.env))
    ).then(function (args) {
            return inter.Process('run', args[0], args[1]);
        }).then(function (result) {
            return result.stdout;
        }, function (error) {
            return error;
        });
};

最佳答案

如果你想切换到 Promise.all(),它只接受一个 Promise 数组作为参数,并且不接受回调(你无论如何也不会使用它)。因此,您所要做的就是将您传递的两个 Promise 包装在一个数组中:

createProc = function (fPath) {
    "use strict";
    return Promise.all([
        // added here  ^
        fs.readFileAsync(fPath, 'utf8')
            .then(function (content) {
                return parseFile(content).getWeb();
            }),
        scan.findInUseAsync(12, 152, 'localhost')
            .then(envOptions.mod.bind(null, process.env))
    ]).then(function (args) {
            return inter.Process('run', args[0], args[1]);
        }).then(function (result) {
            return result.stdout;
        }, function (error) {
            return error;
        });
};

关于javascript - promise 加入变革 promise 一切,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34513640/

相关文章:

javascript - Firefox 扩展 : How to run function on every video change on YouTube

javascript - 使用node js从redis获取值

node.js - Q,使用promise时为什么使用bluebird框架?

javascript - JavaScript Promise 的 block 流执行

javascript - 查询内部解析云 For 循环

javascript - 将 ng-class 与大型表达式一起使用

javascript - 如何使用 Babel.js 在 AST 中插入导入语句?

javascript - Ajax发帖但对象错误

node.js - 如何增加批量数组字段 mongodb 上的计数器

javascript - 路由器 View 内容未呈现