Masalah:
Pertimbangkan kod di bawah yang membaca susunan fail secara bersiri.
var readFile = function(file) {...}; var readFiles = function(files) {...};
Sementara penyelesaian rekursif ini berfungsi, kaedah yang lebih mudah ialah dikehendaki tanpa menggunakan fungsi readSequential.
Penyelesaian 1: Promise.all
Pada asalnya, Promise.all telah dicuba, tetapi ia serentak menggunakan semua panggilan readFile.
var readFiles = function(files) {...};
Penyelesaian 2: Async Fungsi
Jika disokong oleh persekitaran, fungsi async boleh digunakan.
async function readFiles(files) {...};
Penyelesaian 3: Penjana Async
Untuk bacaan tertunda, penjana async boleh digunakan.
async function* readFiles(files) {...};
Penyelesaian 4: Untuk Gelung
Sebaliknya untuk gelung mudah boleh digunakan.
var readFiles = function(files) {...};
Penyelesaian 5: Kurangkan
Sebagai alternatif, penyelesaian padat menggunakan pengurangan ialah mungkin.
var readFiles = function(files) {...};
Penyelesaian 6: Promise Libraries
Promise library seperti Bluebird menawarkan kaedah utiliti untuk tujuan ini.
var Promise = require("bluebird"); var readFileAll = Promise.resolve(files).map(fs.readFileAsync,{concurrency: 1 });
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Menyelesaikan Janji untuk Pembacaan Fail Secara Berurutan?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!