shajara图解全部结果
中文

全部结果

all 结果聚合

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";
    },
  ] as const);

  const [user, settings] = yield* wait(pageData);
  return { user, settings };
}
renderDashboard 通过 all 同时启动 loadUser 和 loadSettings。
pageData 是一个整体 future,会在两份并发工作结果都收集完成后结算。