Problem:
Betrachten Sie den folgenden Code, der ein Array von Dateien seriell liest.
var readFile = function(file) {...}; var readFiles = function(files) {...};
Während diese rekursive Lösung funktioniert, ist eine einfachere Methode ohne Verwendung von wünschenswert readSequential-Funktion.
Lösung 1: Promise.all
Ursprünglich wurde Promise.all versucht, aber es wurden gleichzeitig alle readFile-Aufrufe aufgerufen.
var readFiles = function(files) {...};
Lösung 2: Asynchrone Funktionen
Wenn Unterstützt durch die Umgebung kann eine Async-Funktion verwendet werden.
async function readFiles(files) {...};
Lösung 3: Async-Generator
Für verzögertes Lesen kann ein Async-Generator verwendet werden.
async function* readFiles(files) {...};
Lösung 4: For-Schleife
Ein einfaches for Stattdessen kann eine Schleife verwendet werden.
var readFiles = function(files) {...};
Lösung 5: Reduzieren
Alternativ ist eine kompakte Lösung mit Reduzieren möglich.
var readFiles = function(files) {...};
Lösung 6: Promise-Bibliotheken
Promise-Bibliotheken wie Bluebird bieten Nutzen Methoden hierfür.
var Promise = require("bluebird"); var readFileAll = Promise.resolve(files).map(fs.readFileAsync,{concurrency: 1 });
Das obige ist der detaillierte Inhalt vonWie kann ich Versprechen für das Lesen von Dateien nacheinander auflösen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!