Я думал, что после 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...
});
Есть идеи, почему обещания ожидают?