asyncToGenerator.js 647 B

12345678910111213141516171819202122232425262728
  1. export default (function (fn) {
  2. return function () {
  3. var gen = fn.apply(this, arguments);
  4. return new Promise(function (resolve, reject) {
  5. function step(key, arg) {
  6. try {
  7. var info = gen[key](arg);
  8. var value = info.value;
  9. } catch (error) {
  10. reject(error);
  11. return;
  12. }
  13. if (info.done) {
  14. resolve(value);
  15. } else {
  16. return Promise.resolve(value).then(function (value) {
  17. step("next", value);
  18. }, function (err) {
  19. step("throw", err);
  20. });
  21. }
  22. }
  23. return step("next");
  24. });
  25. };
  26. });