に私がRxJSを学んだし、角度2.のは、私は次のようになり、以前の1の結果に依存して複数の非同期関数呼び出しとの約束のチェーンがあるとしましょう:やっで連鎖観測はRxJS
var promiseChain = new Promise((resolve, reject) => {
setTimeout(() => {
resolve(1);
}, 1000);
}).then((result) => {
console.log(result);
return new Promise((resolve, reject) => {
setTimeout(() => {
resolve(result + 2);
}, 1000);
});
}).then((result) => {
console.log(result);
return new Promise((resolve, reject) => {
setTimeout(() => {
resolve(result + 3);
}, 1000);
});
});
promiseChain.then((finalResult) => {
console.log(finalResult);
});
私の試みを約束を使用せずにRxJSを単独で使用しても、次のようになりました。
var observableChain = Observable.create((observer) => {
setTimeout(() => {
observer.next(1);
observer.complete();
}, 1000);
}).flatMap((result) => {
console.log(result);
return Observable.create((observer) => {
setTimeout(() => {
observer.next(result + 2);
observer.complete()
}, 1000);
});
}).flatMap((result) => {
console.log(result);
return Observable.create((observer) => {
setTimeout(() => {
observer.next(result + 3);
observer.complete()
}, 1000);
});
});
observableChain.subscribe((finalResult) => {
console.log(finalResult);
});
プロミスチェーンと同じ出力が得られます。私の質問は
私はこの権利をしていますか?上記のコードにできるRxJS関連の改善はありますか
この観測可能なチェーンを繰り返し実行するにはどうすればよいですか?すなわち端部で別のサブスクリプションを追加するだけで、私はそれが1、3および6
observableChain.subscribe((finalResult)=> {; はconsole.log(finalResultを)})を印刷することを期待もさらに6を生成します。
observableChain.subscribe((finalResult)=> { にconsole.log(finalResult); })。 Rxjs対約束組成について