Naveen Chawla (2017-11-07T19:46:55.000Z)
naveen.chwl at gmail.com (2017-11-08T05:34:10.374Z)
async functions create a new promise for you upon every invocation, which you resolve via `await`, but that's all invisible in the background. It's basically: ```js async function doMovesAsync(){ moves.forEach( move=>{ doMoveAsync(); //another async function } ); } ``` ...so you can do regular programming, in async world. This is why I believe it's more powerful than observables, thereby making them redundant. When I say branching into multiple outputs, I do mean creating new data that leaves the original data untouched.