Skip to content

Instantly share code, notes, and snippets.

@intrnl
Last active October 10, 2020 02:37
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save intrnl/7ee5a3c77b89164d9d7f712e6e012625 to your computer and use it in GitHub Desktop.
Save intrnl/7ee5a3c77b89164d9d7f712e6e012625 to your computer and use it in GitHub Desktop.
function __async (generator) {
return function (...args) {
let it = generator.apply(this, args);
return new Promise((resolve, reject) => {
step(it.next());
function step (result) {
if (result.done) resolve(result.value);
else Promise.resolve(result.value).then(fulfilled, rejected);
}
function fulfilled (value) {
try {
step(it.next(value));
} catch (e) {
reject(e);
}
}
function rejected (value) {
try {
step(it.throw(value));
} catch (e) {
reject(e);
}
}
});
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment