Rumah  >  Artikel  >  hujung hadapan web  >  Bagaimana untuk Memastikan Pelaksanaan Segerak Kod Berasaskan Janji dalam Gelung?

Bagaimana untuk Memastikan Pelaksanaan Segerak Kod Berasaskan Janji dalam Gelung?

Susan Sarandon
Susan Sarandonasal
2024-10-26 19:22:30278semak imbas

How to Ensure Synchronous Execution of Promise-Based Code in a Loop?

Mencari Struktur Gelung yang Betul untuk Memastikan Kod Berasaskan Janji Berjalan Serentak

Apabila bekerja dengan kod berasaskan janji, struktur gelung yang betul ialah penting untuk menjamin pelaksanaan segerak bagi operasi tak segerak. Dalam senario yang diberikan, matlamatnya adalah untuk membina gelung yang memastikan pelaksanaan "db.getUser(email).then(function(res) { logger.log(res); })" dalam susunan yang betul semasa setiap lelaran.

Satu pendekatan menggunakan fungsi "promiseWhile" tersuai. Walaupun kaedah ini boleh berguna untuk senario umum, kaedah ini memperkenalkan kerumitan yang tidak perlu untuk kes khusus yang ada. Sebaliknya, penyelesaian yang lebih mudah ialah memanfaatkan fungsi manipulasi tatasusunan terbina dalam seperti map() dan reduce().

Janji Selari vs. Bersiri

Masalahnya terletak dalam keperluan untuk mengekalkan susunan respons, yang menghapuskan penggunaan pendekatan selari melalui Array.prototype.map(). Untuk membina rantai janji yang diingini dengan susunan terpelihara, Array.prototype.reduce() adalah lebih sesuai.

Contoh:

function fetchUserDetails(arr) {
    return arr.reduce(function(promise, email) {
        return promise.then(function() {
            return db.getUser(email).done(function(res) {
                logger.log(res);
            });
        });
    }, Promise.resolve());
}

Dengan menggunakan kaedah ini, pelaksanaan "db. getUser" dijamin bersiri, memastikan susunan keputusan dikekalkan. Kod ini boleh dipanggil seperti berikut:

var arrayOfEmailAddys = [...];

fetchUserDetails(arrayOfEmailAddys).then(function() {
    console.log('all done');
});

Pendekatan ini menghapuskan keperluan untuk gelung atau syarat yang kompleks dan memastikan pelaksanaan rantai janji yang betul, walaupun semasa berurusan dengan operasi tak segerak.

Atas ialah kandungan terperinci Bagaimana untuk Memastikan Pelaksanaan Segerak Kod Berasaskan Janji dalam Gelung?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn