{"actionType":"add-food","food":"beef"}done!waitForの実装https://github.com/facebook/flux/blob/2.0.2/src/Dispatcher.js#L154-L177waitForというより、指定idのコールバックを先に実行しているだけ。待っているように見えてるだけだった。そもそもDispatcher.registerにはEventEmitterのようにイベント名は登録できないので、dispatchしたらregister済みの全てのコールバック関数は登録順に即実行される。(actionTypeなどのプロパティで自分宛てなのか判定してねという作法になってる)dispatchすると、コールバックは実行直前に自分のidにisDispatchingフラグを立てる。コールバック内でwaitFor([id...])を呼ぶと、id指定したコールバックをその場で実行しようとする。対象がisDispatchingの場合は次のidを見る。waitForで指定されたidのコールバックの中で、さらにwaitForが呼ばれたら再帰的にまた同じことをやる。while...というエラーがthrowされる。waitFor指定したコールバックの呼び出しが完了したら、そのまま処理が続くので順番が制御できる。