array dinamis di Promise.all [duplikat]

jika menambahkan janji ke array setelah Promise.all - itu akan diabaikan

let pr = [];
let start = Date.now();

pr.push(new Promise((resolve) => {
    setTimeout(() => {
        resolve();
    }, 2000);
}));

Promise.all(pr).then(() => {
    console.log('All done' + (Date.now() - start));
});

pr.push(new Promise((resolve) => {
    setTimeout(() => {
        resolve();
    }, 4000);
}));

Semua selesai2000

Bagaimana saya bisa melakukannya?


person Alexey Vodolazhchenko    schedule 12.04.2018    source sumber
comment
Tentu akan diabaikan, janjinya belum ada. Mengapa Anda tidak memindahkannya saja di depan panggilan Promise.all? Berfungsi dengan baik.   -  person Bergi    schedule 12.04.2018
comment
stackoverflow.com/a/37819138/1048572   -  person Bergi    schedule 12.04.2018
comment
Janji akan ditambahkan saat animasi dijalankan Sebelum animasi saya tidak berjanji :c   -  person Alexey Vodolazhchenko    schedule 12.04.2018
comment
Anda mungkin ingin menunjukkan kode untuk masalah sebenarnya Anda. Sebuah animasi tidak boleh menambahkan janji pada apa pun, ia harus membuat janji untuk semuanya sejak awal. Lihat juga Janji untuk janji yang belum dibuat   -  person Bergi    schedule 12.04.2018
comment
Terima kasih, saya melakukannya seperti ini :)   -  person Alexey Vodolazhchenko    schedule 12.04.2018