Heim  >  Fragen und Antworten  >  Hauptteil

javascript - Wie implementiert man mehrere in einer Schleife verschachtelte Versprechen?

Die allgemeine Situation ist wie folgt:

Erhalten Sie zunächst ein Array (Regionen) aus einer Anfrage. Ignorieren Sie diesen Schritt. Er wurde bereits verarbeitet.
Durchlaufen Sie dieses Array, um die erforderlichen Informationen zu erhalten. Dadurch können N asynchrone Anfragen gesendet werden.
Verarbeiten Sie die zurückgegebenen Daten, nachdem alle diese asynchronen Anforderungen abgeschlossen sind.

Das Problem, auf das ich hier gestoßen bin, ist, dass jedes Mal, wenn es scheint, als würde es direkt zur äußeren Dann-Methode übergehen, nicht alle inneren Dann-Werte aufgelöst werden sollten, bevor die äußere Dann-Methode eingegeben wird? Wie soll ich meine Frage umschreiben?

var promises = [];
promises = regions.map(function (region) {
  return new Promise(function(resolve) {
    Promise.all([asyncRequest1(region), asyncRequest2(region), asyncRequest3(region), asyncRequest4(region)])
    .then(function (reses) {
      resolve(reses);
    });
  });
  
});

Promise.all([promises]).then(function(results) {
  handle(results);
});
漂亮男人漂亮男人2671 Tage vor1326

Antworte allen(1)Ich werde antworten

  • 代言

    代言2017-06-28 09:31:10

    Promise.all([promises])promises 已经是数组了

    Antwort
    0
  • StornierenAntwort