Einführung
In diesem Lab werden wir lernen, wie man eine asynchrone Funktion umwandelt, um eine Promise zurückzugeben, indem man die promisify-Funktion verwendet. Dadurch können wir sauberere und lesbarere Code schreiben, indem wir Callback-Funktionen vermeiden. Wir werden auch die Verwendung von Currying und dem Rest-Operator in JavaScript erkunden.
Promisify-Funktion
Um eine asynchrone Funktion zu konvertieren, um eine Promise zurückzugeben, folgen Sie diesen Schritten:
- Öffnen Sie das Terminal/SSH und geben Sie
nodeein, um mit der Code-Praxis zu beginnen. - Verwenden Sie Currying, um eine Funktion zurückzugeben, die eine
Promisezurückgibt, die die ursprüngliche Funktion aufruft. - Verwenden Sie den Rest-Operator (
...), um alle Parameter zu übergeben. - Wenn Sie Node 8+ verwenden, können Sie
util.promisifyverwenden. - Hier ist ein Beispiel-Codeausschnitt:
const promisify =
(func) =>
(...args) =>
new Promise((resolve, reject) =>
func(...args, (err, result) => (err ? reject(err) : resolve(result)))
);
- Um diese Funktion zu verwenden, definieren Sie die asynchrone Funktion und übergeben Sie sie als Parameter an die
promisify-Funktion. Die zurückgegebene Funktion wird jetzt eine Promise zurückgeben.
const delay = promisify((d, cb) => setTimeout(cb, d));
delay(2000).then(() => console.log("Hi!")); // Promise löst sich nach 2s auf
Die delay-Funktion ist ein Beispiel einer asynchronen Funktion, die jetzt eine Promise zurückgibt, indem sie die promisify-Funktion verwendet.
Zusammenfassung
Herzlichen Glückwunsch! Sie haben das Promisify-Funktion-Lab abgeschlossen. Sie können in LabEx weitere Labs ausprobieren, um Ihre Fähigkeiten zu verbessern.