Serviceを読んで理解し、同意したものとみなします。スタック・オーバーフローはプログラマーとプログラミングに熱心な人のためのQ&Aサイトです。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リーダーに貼り付けてください。