Bagaimana untuk Memastikan Pelaksanaan Segerak Kod Berasaskan Janji dalam Gelung?

Susan Sarandon
Lepaskan: 2024-10-26 19:22:30
asal
277 orang telah melayarinya

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());
}
Salin selepas log masuk

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');
});
Salin selepas log masuk

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!

sumber:php.cn
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!