Enträtseln verschachtelter Versprechen
Bei der Arbeit mit Netzwerkcode in NodeJS und der Verwendung von Versprechen stößt man häufig auf verschachtelte Versprechen. Obwohl diese Struktur manchmal notwendig sein kann, kann sie auch zu unübersichtlichem und unlesbarem Code führen. Ein saubererer und effizienterer Ansatz besteht darin, Versprechen zu verketten, anstatt sie zu verschachteln.
Das Problem verschachtelter Versprechen
Betrachten Sie das folgende Beispiel:
exports.viewFile = function(req, res) { var fileId = req.params.id; boxContentRequest('files/' + fileId + '/content', req.user.box.accessToken) .then(function(response) { boxViewerRequest('documents', {url: response.request.href}, 'POST') .then(function(response) { boxViewerRequest('sessions', {document_id: response.body.id}, 'POST') .then(function(response) { console.log(response); }); }); }); };
Dieses Code-Snippet führt drei API-Anfragen nacheinander durch und verwendet dabei verschachtelte Versprechen. Obwohl es korrekt funktioniert, ist es optisch unübersichtlich und schwer zu befolgen.
Stattdessen Versprechungen verketten
Um Versprechungen zu verketten, statt sie zu verschachteln, ändern Sie die then-Rückrufe so, dass sie die nächsten zurückgeben Versprechen:
exports.viewFile = function(req, res) { var fileId = req.params.id; boxContentRequest('files/' + fileId + '/content', req.user.box.accessToken) .then(function(response) { return boxViewerRequest('documents', {url: response.request.href}, 'POST'); }) .then(function(response) { return boxViewerRequest('sessions', {document_id: response.body.id}, 'POST'); }) .then(function(response) { console.log(response); }); };
Jetzt gibt jeder then-Rückruf das nachfolgende Versprechen zurück und „verkettet“ sie effektiv miteinander. Der aus jedem Versprechen aufgelöste Wert steht dann als Argument für den nächsten Rückruf in der Sequenz zur Verfügung.
Durch die Übernahme dieser Technik können Sie die Lesbarkeit und Wartbarkeit Ihres Codes verbessern, insbesondere wenn Sie mit mehreren API-Anfragen arbeiten .
Das obige ist der detaillierte Inhalt vonWie kann ich verschachtelte Versprechen vermeiden und die Lesbarkeit des Codes in Node.js verbessern?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!