Path: blob/master/node_modules/@babel/runtime/helpers/AsyncGenerator.js
2593 views
var AwaitValue = require("./AwaitValue.js");12function AsyncGenerator(gen) {3var front, back;45function send(key, arg) {6return new Promise(function (resolve, reject) {7var request = {8key: key,9arg: arg,10resolve: resolve,11reject: reject,12next: null13};1415if (back) {16back = back.next = request;17} else {18front = back = request;19resume(key, arg);20}21});22}2324function resume(key, arg) {25try {26var result = gen[key](arg);27var value = result.value;28var wrappedAwait = value instanceof AwaitValue;29Promise.resolve(wrappedAwait ? value.wrapped : value).then(function (arg) {30if (wrappedAwait) {31resume(key === "return" ? "return" : "next", arg);32return;33}3435settle(result.done ? "return" : "normal", arg);36}, function (err) {37resume("throw", err);38});39} catch (err) {40settle("throw", err);41}42}4344function settle(type, value) {45switch (type) {46case "return":47front.resolve({48value: value,49done: true50});51break;5253case "throw":54front.reject(value);55break;5657default:58front.resolve({59value: value,60done: false61});62break;63}6465front = front.next;6667if (front) {68resume(front.key, front.arg);69} else {70back = null;71}72}7374this._invoke = send;7576if (typeof gen["return"] !== "function") {77this["return"] = undefined;78}79}8081AsyncGenerator.prototype[typeof Symbol === "function" && Symbol.asyncIterator || "@@asyncIterator"] = function () {82return this;83};8485AsyncGenerator.prototype.next = function (arg) {86return this._invoke("next", arg);87};8889AsyncGenerator.prototype["throw"] = function (arg) {90return this._invoke("throw", arg);91};9293AsyncGenerator.prototype["return"] = function (arg) {94return this._invoke("return", arg);95};9697module.exports = AsyncGenerator, module.exports.__esModule = true, module.exports["default"] = module.exports;9899