Path: blob/master/node_modules/@babel/runtime/helpers/esm/AsyncGenerator.js
1126 views
import OverloadYield from "./OverloadYield.js";1export default function AsyncGenerator(gen) {2var front, back;34function resume(key, arg) {5try {6var result = gen[key](arg),7value = result.value,8overloaded = value instanceof OverloadYield;9Promise.resolve(overloaded ? value.v : value).then(function (arg) {10if (overloaded) {11var nextKey = "return" === key ? "return" : "next";12if (!value.k || arg.done) return resume(nextKey, arg);13arg = gen[nextKey](arg).value;14}1516settle(result.done ? "return" : "normal", arg);17}, function (err) {18resume("throw", err);19});20} catch (err) {21settle("throw", err);22}23}2425function settle(type, value) {26switch (type) {27case "return":28front.resolve({29value: value,30done: !031});32break;3334case "throw":35front.reject(value);36break;3738default:39front.resolve({40value: value,41done: !142});43}4445(front = front.next) ? resume(front.key, front.arg) : back = null;46}4748this._invoke = function (key, arg) {49return new Promise(function (resolve, reject) {50var request = {51key: key,52arg: arg,53resolve: resolve,54reject: reject,55next: null56};57back ? back = back.next = request : (front = back = request, resume(key, arg));58});59}, "function" != typeof gen["return"] && (this["return"] = void 0);60}61AsyncGenerator.prototype["function" == typeof Symbol && Symbol.asyncIterator || "@@asyncIterator"] = function () {62return this;63}, AsyncGenerator.prototype.next = function (arg) {64return this._invoke("next", arg);65}, AsyncGenerator.prototype["throw"] = function (arg) {66return this._invoke("throw", arg);67}, AsyncGenerator.prototype["return"] = function (arg) {68return this._invoke("return", arg);69};7071