Javascript 获取bluebird.all().spread()运行的任务的状态

Javascript 获取bluebird.all().spread()运行的任务的状态,javascript,promise,bluebird,Javascript,Promise,Bluebird,我有两项任务由蓝鸟执行: // Require bluebird... var Promise = require("bluebird"); // Run two tasks together Promise .all([Git.getRemotes(), GitFtp.getFtpRemotes()]) .spread(function (remotes, ftpRemotes) { // Something cool }); 对于q.js我的回答是: remotes.

我有两项任务由蓝鸟执行:

// Require bluebird...
var Promise = require("bluebird");

// Run two tasks together
Promise
  .all([Git.getRemotes(), GitFtp.getFtpRemotes()])
  .spread(function (remotes, ftpRemotes) {
    // Something cool
  });
对于q.js我的回答是:

remotes.value (the response of my task)
remotes.state ("fullfilled" or "rejected" depending if the task thrown an error or not)
ftpRemotes.value
ftpRemotes.state
因此,在
spread()
第一部分中,可以检查每个任务的状态。

有了蓝知更鸟,我得到的只是:

remotes
ftpRemotes
只包含由我的任务生成的数组

我想我需要
承诺。所有问题都解决了
,但我在文档中找不到。


如何获取每个任务的状态?

如果要处理好/坏的情况,请:

//Require bluebird...
var Promise = require("bluebird");

// Run two tasks together
Promise
  .all([Git.getRemotes(), GitFtp.getFtpRemotes()])
  .spread(function (remotes, ftpRemotes) {
    // Something cool
  }).catch(function(err){
    // handle errors on both
  });
如果要等待两者都解决或拒绝,请使用
Promise.solite

Promise
  .settle([Git.getRemotes(), GitFtp.getFtpRemotes()])
  .spread(function(remotesStatus,ftpRemoteStatus){
        // the two are PromiseInspection objects and have:
        // isFullfilled, isRejected, value() etc.
  });

如果你想处理这件事,它们是好的/坏的:

//Require bluebird...
var Promise = require("bluebird");

// Run two tasks together
Promise
  .all([Git.getRemotes(), GitFtp.getFtpRemotes()])
  .spread(function (remotes, ftpRemotes) {
    // Something cool
  }).catch(function(err){
    // handle errors on both
  });
如果要等待两者都解决或拒绝,请使用
Promise.solite

Promise
  .settle([Git.getRemotes(), GitFtp.getFtpRemotes()])
  .spread(function(remotesStatus,ftpRemoteStatus){
        // the two are PromiseInspection objects and have:
        // isFullfilled, isRejected, value() etc.
  });

如果你希望事情可能会失败,你可以使用
Promise.settle
,但我怀疑这是你在这里真正需要的。这两个函数只是为每个函数返回一个数组,我认为这不相关。顺便问一下,源代码在这个PR中,你说的“我作为回应”是什么意思?那是木头吗?其中?q在“值”键中返回一个“fullfilled”字符串,如果特定任务正常,则返回一个“fullfilled”字符串;如果出现问题,则返回一个“拒绝”。@FezVrasta:您没有使用
q.all
,而是使用
q.allselled
,是吗?如果你想让事情失败,你可以使用
Promise.settle
,但我怀疑这是你真正需要的。这两个函数只是为每个函数返回一个数组,我认为这不相关。顺便问一下,源代码在这个PR中,你说的“我作为回应”是什么意思?那是木头吗?其中?q在“value”键中返回一个“fullfilled”字符串,如果特定任务正常,则返回一个“fullfilled”字符串;如果出现问题,则返回一个“rejected”。@FezVrasta:您没有使用
q.all
,而是
q.allselled
,是吗?