Then I'd probably use that unless there's a good reason to go imperative.
I find the fixed pipeline of combinatorial APIs can offer advantages for readability compared to imperative versions. Though I do think that's more true for dealing with Result
s than async probably.
I'll certainly keep using things like foo().and_then(bar).with_context("baz")
quite a lot.