全部结果
all 结果聚合
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,会在两份并发工作结果都收集完成后结算。