Jestem nowy dla RxJS i FRP w ogóle. Miałem pomysł przekształcenia istniejącej obietnicy w mojej aplikacji ExpressJS, aby była możliwa do zaobserwowania w praktyce. Mam świadomość, że to chyba nie jest najlepszy przykład, ale może ktoś może pomóc rzucić trochę światła.Łańcuchowe obietnice z RxJS
Co usiłuję zrobić:
- Mam dwie obietnice - prom1 i prom2
- chcę prom1 biec przed prom2
- Jeśli prom1 wysyła odrzucić (ERR), Chcę anulować prom2, zanim się zacznie.
- Chcę, aby komunikat błędu prom1 powrócił do metody onError na obserwatorze.
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'); });
Obietnice nie są "uruchomione", nie można ich "uruchomić". Co masz na myśli? – Bergi
Jaką obietnicę biblioteka używasz, rodzimych obietnic? Jak obsługuje anulowanie? – Bergi
@Bergi - Korzystam z https://github.com/then/promise. Kiedy mówię "run" lub "start", myślę, że to mój sposób na powiedzenie, kiedy obserwowalne jest tworzone i nadaje się do subskrybenta. – Pathsofdesign