shajaraFlow ExplorerFuture Settlement
English

Future Settlement

One routine waits on a future, and another routine settles it later.

spawn(receiveSmsCode)settle smsCodewait(smsCode)verifyPhoneNumberpendingsmsCodereceiveSmsCodepending
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.