shajara流程图解全部结果
中文

全部结果

all(...) 把并行 routine 的结果收集到同一个 future。

all(pageData)loadUserloadSettingsuser resultsettings resultwait(pageData)renderDashboardpendingloadUserpendingloadSettingspendingpageDatapending
function* renderDashboard() {
  const pageData = yield* all([
    function* loadUser() {
      yield* sleep(1000);
      return "user";
    },

    function* loadSettings() {
      yield* sleep(2000);
      return "settings";
    },
  ]);

  const [user, settings] = yield* wait(pageData);
  return { user, settings };
}
renderDashboard 调用 all(...),启动 loadUser 和 loadSettings。
wait(pageData) 会一次观察两个结果,并保留 all(...) 中的顺序。