Generators don&#x27;t help with the sync&#x2F;async split.<p>Generators are just iterators, and are synchronous. The consumer asks for a value with next() and the value must be computable (even if that value is a Promise).<p>If you have an async function (one that returns a Promise or in the future a Stream), and you need to call it from a sync function, and somehow incorporate the future value into the return value of the sync function, you&#x27;re stuck. You have to async-ify your functions all the way up the call chain.<p>With blocking this isn&#x27;t a problem. We just need environments that make blocking cheap.