Ich erstelle im Wesentlichen eine Transaktion. Eine Vereinfachung würde wie folgt beschrieben:Rxjs Bedingung Fehlerfluss
1) Machen Sie einen Versprechen Anruf. 2) Wenn Fehler und error.code === "ConditionalCheckFailedException", den Fehler ignorieren und den Stream ohne Änderungen fortsetzen. 3) Wenn Fehler, Stream stoppen.
Die folgenden geben mir 1 und 3. Ich möchte mit dem Strom weitermachen, wenn ich eine bestimmte Ausnahme habe. Ist das möglich? ...
Im Moment habe ich:
//... stream that works to this point
.concatMap((item) => {
const insertions = Rx.Observable.fromPromise(AwsCall(item))
.catch(e => {
if (e.code === "ConditionalCheckFailedException") {
return item
} else {
throw e;
}
});
return insertions.map(() => item);
})
.concat // ... much the same
danke - von echtem Code übersetzt und eine Variable verpaßt. –
Einfügungen ist ein Versprechen, oder? aber kein regelmäßiges Versprechen, weil regelmäßige Versprechungen keine 'map' Methode haben ... was macht'insertions.map'? Wie verhält es sich mit dem Versprechen, dass "Insertionen" sind? –
Ja, beim AWS-Aufruf wurde eine .promise() angehängt, wenn sie zurückgegeben wird. "Insertionen" ist ein Rx.Observable.fromPromise. –