全部结果
all(...) 把并行 routine 的结果收集到同一个 future。
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(...) 中的顺序。