Я новичок в RxJS и FRP в целом. У меня была идея превратить существующую цепочку обещаний в приложение ExpressJS, чтобы быть наблюдаемой для практики. Я знаю, что это, вероятно, не лучший пример, но, возможно, кто-то может помочь пролить свет.
Что я пытаюсь сделать:
- У меня есть два promises - prom1 и prom2
- Я хочу, чтобы prom1 запускался до prom2
- Если prom1 отправляет отклонение (err), я хочу отменить prom2 до его начала.
- Я хочу, чтобы сообщение об ошибке prom1 возвращалось для доступа к методу onError на наблюдателе.
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'); });