You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
38 lines
906 B
38 lines
906 B
"use strict"; |
|
|
|
exports.__esModule = true; |
|
|
|
var _promise = require("../core-js/promise"); |
|
|
|
var _promise2 = _interopRequireDefault(_promise); |
|
|
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } |
|
|
|
exports.default = function (fn) { |
|
return function () { |
|
var gen = fn.apply(this, arguments); |
|
return new _promise2.default(function (resolve, reject) { |
|
function step(key, arg) { |
|
try { |
|
var info = gen[key](arg); |
|
var value = info.value; |
|
} catch (error) { |
|
reject(error); |
|
return; |
|
} |
|
|
|
if (info.done) { |
|
resolve(value); |
|
} else { |
|
return _promise2.default.resolve(value).then(function (value) { |
|
step("next", value); |
|
}, function (err) { |
|
step("throw", err); |
|
}); |
|
} |
|
} |
|
|
|
return step("next"); |
|
}); |
|
}; |
|
}; |