Future Settlement
One routine waits on a future, and another routine settles it later.
function* verifyPhoneNumber() {
const [smsCode, provideSmsCode] = yield* future<string>();
yield* spawn(function* receiveSmsCode() {
yield* sleep(1000);
yield* settle(provideSmsCode, "4921");
});
return yield* wait(smsCode);
}verifyPhoneNumber waits at wait(smsCode) until that settlement arrives.
receiveSmsCode settles smsCode with the received code.