Unfortunately, turning async code (which often has components that
execute in a different thread or process) back into in sync code is
really, really hard.
What semantics would you give to this `Promise.sync()`? Can other code
be executed by the main thread while you're waiting for your promise
I agree that sometimes-sync is always a nightmare, and I've
experienced this pain personally from a library API that once did
this. (I did succeed in getting it to eventually change.) I'm willing
to draw exception for things like APIs that wrap both sync and async
iterators, but those literally
Typically, APIs that are sometimes sync and sometimes async are called
"z̲̗̼͙̥͚͛͑̏a̦̟̳͋̄̅ͬ̌͒͟ļ̟̉͌ͪ͌̃̚g͔͇̯̜ͬ̒́o̢̹ͧͥͪͬ" - unpredictable, hard to
maintain, hard to understand. The general best practice is that a function
should always be async, or always sync, but never the twain shall meet.
You could move the async part into a helper function and call that from a
sync function you instead expose. I've used this trick more than once, and
although it is a bit of boilerplate, it works well enough.
On Sun, Feb 3, 2019 at 18:40 #!/JoePea wrote:
> I often find myself enjoying async
4 matches
Mail list logo