Skip to content

Instantly share code, notes, and snippets.

@bitfishxyz
Created May 4, 2020 08:30
Show Gist options
  • Save bitfishxyz/a27559bef04266f946cd50837fa19e31 to your computer and use it in GitHub Desktop.
Save bitfishxyz/a27559bef04266f946cd50837fa19e31 to your computer and use it in GitHub Desktop.
function asyncToGenerator(generatorFunc) {
return function() {
const gen = generatorFunc.apply(this, arguments)
return new Promise((resolve, reject) => {
function step(key, arg) {
let generatorResult
try {
generatorResult = gen[key](arg)
} catch (error) {
return reject(error)
}
const { value, done } = generatorResult
if (done) {
return resolve(value)
} else {
return Promise.resolve(value).then(val => step('next', val), err => step('throw', err))
}
}
step("next")
})
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment