2017-12-13 19 views
0

Ich verwende Q in einer Node.js-Anwendung, um Versprechungen zu implementieren und etwas in dieser Hinsicht, in denen es einige Versprechen Verkettung ist:Node.js - Q-Bibliothek, wie kann ich auf den Wert in einem früheren then() zugreifen

service.execute() 
.then((result1) => { 
    return service2.execute(result1); 
}) 
.then((result2) => { 
    //Here I need result1 and result2!!! 
}); 

In der zweiten dann muss ich result1 aus dem vorherigen dann Block verwenden, aber es ist nicht verfügbar. Gibt es eine Möglichkeit, darauf zuzugreifen?

HINWEIS: Es gibt ähnliche Fragen, aber keine von ihnen lösen das Problem für die Q-Bibliothek.

Antwort

1

Kette von Ihrem inneren Versprechen:

service.execute().then((result1) => { 
    return service2.execute(result1).then((result2) => { 
     // Here I have access to both result1 and result2. 
     // Result1 via the closure, Result2 as an argument. 
    }); 
}); 

Dies ist wahrscheinlich der beste Weg, dass zu tun gegeben result2 bekommen result1 bereits mit erfordert. Wenn sie nicht voneinander abhängig wären, könnten Sie Promise.all verwenden.

Verwandte Themen