co
proposal-async-await
co | proposal-async-await | |
---|---|---|
3 | 2 | |
11,866 | 1,556 | |
- | - | |
0.0 | 0.0 | |
over 3 years ago | over 3 years ago | |
JavaScript | HTML | |
MIT License | Apache License 2.0 |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
co
- Main-Thread-Scheduling
-
What's another way to write "for await" that is es6 compatible?
Given that the semantics of async functions are quite similar to generator functions, you can use a library the uses the latter to emulate the former – e.g.: https://github.com/tj/co
-
Promises: async/await vs .then(), how we got here and why I use both
Then after a while, we resorted to generator functions and cogenerators, which made async code feel like its synchronous, at the cost of wrapping it in a generator function, yielding every line and introducing a cogenerator library (for example co) to deal with unwrapping the promises like the following example, where we could just yield a promise whenever we encounter it and pretend that the yield does not exist on that line of code.
proposal-async-await
-
Promises: async/await vs .then(), how we got here and why I use both
This evolution served as the inspiration of the async/await syntax introduced in es7, and finally we could just
-
Why await has to be used in an async function?
tc39 async/await proposal has this very question asked From discussion I get that one of the reasons is backward compatibility with old JS code, where await was valid name of a function. So by introducing async it's possible to have await as non-breaking change to syntax since it's only available in async scope. Also async has effect on it's own. As it was mentioned already, async functions have AsyncFunction constructor, instead of just Function. Also async functions always return promise, even if await is never used. If you throw an error or return as usual it'll be wrapped automatically.
What are some alternatives?
suspend - Callback-free control flow for Node using ES6 generators.
TypeScript - TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
bluebird-co - A set of high performance yield handlers for Bluebird coroutines
iterum - Handling iterables like lazy arrays.
promise-breaker - Helps you write libraries that accept both promises and callbacks.
OF - 🍬 Promise wrapper with sugar 🍬
Simple-Series-Parallel - A minimalist utility module for running async functions in series or parallel
cpsfy - 🚀 Tiny goodies for Continuation-Passing-Style functions, fully tested
matchbook-ts - pattern matching in javascript & typescript made easy
contra - :surfer: Asynchronous flow control with a functional taste to it
Node RED - Low-code programming for event-driven applications
FuncSug - An alternative to event-driven programming: a programming language without callbacks to enable you to follow your scenario in GUI programming thanks to additional control flow instructions (structured concurrency)