Ich bin neu bei RxJS und FRP im Allgemeinen. Ich hatte die Idee, eine bestehende Versprechungskette in meiner ExpressJS-Anwendung so umzuwandeln, dass sie für die Praxis beobachtbar ist. Ich bin mir bewusst, dass dies wahrscheinlich nicht das beste Beispiel ist, aber vielleicht kann jemand helfen, etwas Licht zu geben.Verkettung verspricht mit RxJS
Was ich versuche zu tun:
- Ich habe zwei Versprechen - PROM1 und Prom2
- I PROM1 vor Prom2
- ausgeführt werden soll Wenn PROM1 a (err) sendet ablehnen, Ich möchte prom2 abbrechen, bevor es startet.
- Ich möchte, dass die Fehlermeldung prom1 retains für die onError-Methode für den Beobachter verfügbar ist.
var prom1 = new Promise(function(resolve, reject) {
if (true) {
reject('reason');
}
resolve(true);
});
var prom2 = new Promise(function(resolve, reject) {
resolve(true);
});
// What do I do here? This is what I've tried so far...
var source1 = Rx.Observable.fromPromise(prom1);
var source2 = source1.flatMap(Rx.Observable.fromPromise(prom2));
var subscription = source2.subscribe(
function (result) { console.log('Next: ' + result); },
// I want my error 'reason' to be made available here
function (err) { console.log('Error: ' + err); },
function() { console.log('Completed'); });
Versprechen werden nicht "ausgeführt", sie können nicht "gestartet" werden. Was meinen Sie? – Bergi
Welche Versprechen Bibliothek verwenden Sie, native Versprechungen? Wie unterstützt es die Stornierung? – Bergi
@Bergi - Ich verwende https://github.com/then/promise. Wenn ich "run" oder "started" sage, denke ich, es ist meine Art zu sagen, wann das Observable erstellt wird und an den Abonnenten sendet. – Pathsofdesign