Locking

ReactiveJS handles asynchronous values transparently using read and write locks.

const url = "some url";
const page = Network.Web.Get(url);
const status = Reactive.State(Maths.Integer)(0);

const save = Reactive.Reverse(Text.Plain)(page, [], [status], (written) => {
  const posted = Network.Web.Post(url, written);
  const nextStatus = posted.status;
  return [nextStatus];
});

Button.Setter(save, page, () => {
  Content.Text("Save");
});
The button sets the fetched value and the block posts it. The block returns the status, and that value is stored.