I'm wondering what's the relationship between the async
/await
pattern (as known from Scala, F#, C#, etc.) and continuations:
- Is the
async
/await
pattern a limited subset of full-blown continuations? (If true, how are continuations more expressive?) - Are continuations just one possible implementation technique for
async
/await
? (If true, what other implementation approaches exist?) - Or are
async
/await
and continuations just orthogonal concepts where the only commonality is that they both enable some abstraction of control flow/data flow?