Promise.all从.then()回调返回时不能正常工作

Gal*_*eño 2 javascript node.js promise

我正在使用Promise Node.js库,我想做以下事情:

  1. 执行返回Promise的异步操作.
  2. 该操作完成后,返回两个并行异步操作完成时完成的Promise.

我正在使用的代码如下:

var Promise = require('promise');

var resolved1 = Promise.resolve(1);

var resolvedAll = resolved1.then(function() {
  return Promise.all(Promise.resolve(2), Promise.resolve(3));
});

var print = resolvedAll.then(function(values) {
  console.log(values);
});

print.done(function () {
  console.log('done');
});
Run Code Online (Sandbox Code Playgroud)

但是这段代码没有按预期工作,因为它打印:

[]
done
Run Code Online (Sandbox Code Playgroud)

从docu开始,Promise.all返回一个promise,它在iterable参数中的所有promise都已解析时解析.所以在理论上已经解决了所有承诺在完成所有承诺之前不应该Promise.all完成,但这不是这里发生的事情.

知道为什么Promise.all没有按预期工作?这可能是个错误吗?任何人都知道在.then()回调中返回多个承诺的替代方案?

干杯,高尔德

sp0*_*00m 6

Promise.all 期待一个数组:

Promise.all([Promise.resolve(2), Promise.resolve(3)]);
Run Code Online (Sandbox Code Playgroud)