Heim > Web-Frontend > js-Tutorial > Wie kann ich verschachtelte Versprechen in NodeJS für Netzwerkanfragen optimieren?

Wie kann ich verschachtelte Versprechen in NodeJS für Netzwerkanfragen optimieren?

Patricia Arquette
Freigeben: 2024-12-07 20:23:13
Original
653 Leute haben es durchsucht

How Can I Streamline Nested Promises in NodeJS for Network Requests?

Entfernen verschachtelter Versprechen

Bei der Arbeit mit Netzwerkanfragen und Versprechen mithilfe von NodeJS kann es sein, dass verschachtelte Versprechen auftreten. Obwohl dies nicht grundsätzlich falsch ist, muss man diese Versprechen möglicherweise miteinander verketten, um den Ablauf effizienter zu gestalten.

Der bereitgestellte Codeausschnitt zeigt ein Szenario, in dem mehrere verschachtelte Versprechen verwendet werden, um API-Aufrufe durchzuführen:

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);
                        });
                });
        });
};
Nach dem Login kopieren

Um diese Versprechen zu verketten, ist eine einfache Modifikation erforderlich:

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);
      });
};
Nach dem Login kopieren

Der Schlüssel zu diesem Ansatz ist Zurückgebendas neue Versprechen von jedem Rückruf:

.then(function(response) {
    return nextPromise;
})
Nach dem Login kopieren

Dadurch wird sichergestellt, dass die Versprechenskette fortgesetzt und mit dem Wert des „inneren“ Versprechens aufgelöst wird. Durch die Verkettung dieser Versprechen können Sie eine besser lesbare und wartbare Codebasis erstellen.

Das obige ist der detaillierte Inhalt vonWie kann ich verschachtelte Versprechen in NodeJS für Netzwerkanfragen optimieren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage