Serviceを読んで理解し、同意したものとみなします。console.log(v)});下記になります。121321323ところが、私がイメージしていた結果は123123123公式のドキュメントを見てもさっぱり分からないです。個の銅バッジ結果から推測すると、flatMapに返された個々のObservable内での順序は保証しているけど、Observable間の順序は保証していない印象ですね。順番が保証されないものになっており、大抵結果が順不同になります。票4この動きはflatMapによるものではなくて、Observable.rangeのスケジューラによるものですね。Observable.rangeの中をみると、デフォルトでScheduler.currentThreadというスケジューラを利用しています。期待の動作を得るためには、以下のようにScheduler.immediateを使って即時実行するとよいかと思います。個の銅バッジありがとうございます!なんとなく「Scheduler」が原因だということが分かりましたが、そもそも「Scheduler」って何なの?とドキュメントを眺めててずっと疑問に思ってました。貼り付けて頂いたページを見ても、「Scheduler」の説明が見当たらなく、あたかも「コールバック」のような一般的な概念として扱われているように見えます。確かに参考リンクにはちゃんと説明書いてないですね。こちらはもう少し詳しいですがRxJSに限らない説明になっています。Schedulerは簡単に言うと、登録したコールバック関数の実行タイミングを管理するためのクラスです。immediateであれば即座に実行、currentThreadであれば一旦キューに登録してから順に実行、timeoutであればsetTimeoutに登録して実行という感じです。見てみるといいかもしれません。JavaScriptではマルチスレッドはできませんが、CurrentThreadSchedulerでは、関数をいったんキューに登録しておいて、優先度の高いものをキューから取り出して実行するという実装になっています。そのため、実行順序が変わってしまうことがあります。ImmediateSchedulerはキューなどは使わずに即時実行しているので、直感的に分かりやすい動きになっているんじゃないかと思います。(元回答を少し修正しました。10:071実装をみてみると、実行までの待ち時間が小さいものが優先順位が高いようですね。Rxでは時間を扱うので、スケジューラが必要になります。Observable.rangeではスケジューラの存在する意味は分かりにくいと思いますが、例えば以下のようなコードではデータの流れる順番が変わるので、スケジューラがないとうまく動かないと思います。回答スタック・オーバーフローに参加してくれて、ありがとうございます!質問の回答を共有してください。回答を説明し、自分の検討結果も共有してください。意見を述べること(意見を述べるなら、参照リソース、自分の経験で意見をサポートしてください)さらにサポートが必要な場合このヘルプを参考してください。“回答を投稿”をクリックすることで利用規約、プライバシーポリシー、及びクッキーポリシーに同意したものとみなされます。タグが付いた他の質問を参照するか、自分で質問をする。関連する質問0dropzone.js(ドラッグ&ドロップでのアップロード)が上手く動作しません。0html内の値をコード.gsで変数に入れて使う方法0ファイルをblobの形で読み込みたい14「コンテキスト」という言葉が何を指しているのかよく分からない1Ajax機能を有す関数からの戻り値を、動作完了後に参照・利用したい。質問のフィードこのRSSフィードを購読するには、このURLをコピーしてRSSリーダーに貼り付けてください。