scope 拥有的工作
child scope 拥有的工作必须先结束,调用方才会继续。
function* publishArticle() {
const result = yield* branch(function* commitArticle() {
yield* spawn(function* updateSearchIndex() {
yield* sleep(1000);
});
return "published";
});
return result;
}publishArticle 调用 branch(...),进入 commitArticle child scope。
updateSearchIndex 在 commitArticle scope 内由 spawn 启动。
commitArticle 在 updateSearchIndex 完成前先返回 published。
updateSearchIndex 结束后,publishArticle 才会从 branch(...) 继续。