future 完成
一段 routine 等待 future,另一段 routine 稍后完成它。
function* verifyPhoneNumber() {
const [smsCode, provideSmsCode] = yield* future<string>();
yield* spawn(function* receiveSmsCode() {
yield* sleep(1000);
yield* settle(provideSmsCode, "4921");
});
return yield* wait(smsCode);
}verifyPhoneNumber 停在 wait(smsCode),直到 receiveSmsCode 完成 smsCode。
receiveSmsCode 用收到的验证码完成 smsCode。