Массив заполнен обещаниями ... которые должны быть выполнены - PullRequest
0 голосов
/ 02 декабря 2019

Я думал, что после Promise.all и затем () - все обещания должны быть выполнены (разрешены), и когда я console.log массив результатов, кажется, являются (testArr2) НО, когда я пытаюсь скопировать значения из этогомассив - кажется, что Обещания находятся на ходу (testArr3) ...

var dataArr = ['1', '2', '3', '4', '5', '6'];
var testArr1 = [];
var testArr2 = [];
var testArr3 = [];

for (var i = 0; i < dataArr.length; i++) {
  testArr1.push(f1(dataArr[i]));
}

function f1(one) {
  return new Promise(function(resolve) {
    setTimeout(function() {
      testArr2.push(f2(one));
      resolve(one + 'aaaaaaaaaaa');
    }, 2000);
  });
}

function f2(one) {
  return new Promise(function(resolve) {
    setTimeout(function() {
      resolve(one + 'bbbbbbbbbb');
    }, 2000);
  });
}

Promise.all(testArr1).then(function(testArr1) {
  console.log(testArr1);
}).then(function() {
  console.log('==========================');
  console.log('==========================');
  console.log('==========================');
}).then(function() {
  return Promise.all(testArr2).then(function(testArr2) {
    console.log(testArr2); // fulfilled...
  });
}).then(function() {
  testArr2.map(function(item) {
    testArr3.push(item);
  });
  console.log(testArr3); // promises inside...
});

Есть идеи, почему обещания ожидают?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...