Tôi mới đến RxJS và FRP nói chung. Tôi đã có ý tưởng chuyển đổi một chuỗi lời hứa hiện có trong ứng dụng ExpressJS thành một quan sát thực hành. Tôi biết rằng điều này có lẽ không phải là ví dụ tốt nhất nhưng có lẽ ai đó có thể giúp giảm bớt ánh sáng.lời hứa Chaining với RxJS
Những gì tôi đang cố gắng để làm:
- Tôi có hai lời hứa - prom1 và prom2
- Tôi muốn prom1 chạy trước prom2
- Nếu prom1 gửi một từ chối (err), Tôi muốn hủy prom2 trước khi nó bắt đầu.
- Tôi muốn được thông báo lỗi prom1 trở về có sẵn cho phương pháp onerror vào người quan sát.
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'); });
Các lời hứa không được "chạy", chúng không thể "bắt đầu". Ý anh là gì? – Bergi
Bạn đang sử dụng thư viện hứa hẹn nào, lời hứa gốc? Nó hỗ trợ hủy bỏ như thế nào? – Bergi
@Bergi - Tôi đang sử dụng https://github.com/then/promise. Khi tôi nói "chạy" hoặc "bắt đầu" tôi đoán đó là cách tôi nói khi có thể quan sát được và phát sóng tới người đăng ký. – Pathsofdesign