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.
		
		
		
		
		
			
		
			
				
					44 lines
				
				1.6 KiB
			
		
		
			
		
	
	
					44 lines
				
				1.6 KiB
			| 
											3 years ago
										 | export default function _asyncIterator(iterable) { | ||
|  |   var method, | ||
|  |     async, | ||
|  |     sync, | ||
|  |     retry = 2; | ||
|  |   for ("undefined" != typeof Symbol && (async = Symbol.asyncIterator, sync = Symbol.iterator); retry--;) { | ||
|  |     if (async && null != (method = iterable[async])) return method.call(iterable); | ||
|  |     if (sync && null != (method = iterable[sync])) return new AsyncFromSyncIterator(method.call(iterable)); | ||
|  |     async = "@@asyncIterator", sync = "@@iterator"; | ||
|  |   } | ||
|  |   throw new TypeError("Object is not async iterable"); | ||
|  | } | ||
|  | function AsyncFromSyncIterator(s) { | ||
|  |   function AsyncFromSyncIteratorContinuation(r) { | ||
|  |     if (Object(r) !== r) return Promise.reject(new TypeError(r + " is not an object.")); | ||
|  |     var done = r.done; | ||
|  |     return Promise.resolve(r.value).then(function (value) { | ||
|  |       return { | ||
|  |         value: value, | ||
|  |         done: done | ||
|  |       }; | ||
|  |     }); | ||
|  |   } | ||
|  |   return AsyncFromSyncIterator = function AsyncFromSyncIterator(s) { | ||
|  |     this.s = s, this.n = s.next; | ||
|  |   }, AsyncFromSyncIterator.prototype = { | ||
|  |     s: null, | ||
|  |     n: null, | ||
|  |     next: function next() { | ||
|  |       return AsyncFromSyncIteratorContinuation(this.n.apply(this.s, arguments)); | ||
|  |     }, | ||
|  |     "return": function _return(value) { | ||
|  |       var ret = this.s["return"]; | ||
|  |       return void 0 === ret ? Promise.resolve({ | ||
|  |         value: value, | ||
|  |         done: !0 | ||
|  |       }) : AsyncFromSyncIteratorContinuation(ret.apply(this.s, arguments)); | ||
|  |     }, | ||
|  |     "throw": function _throw(value) { | ||
|  |       var thr = this.s["return"]; | ||
|  |       return void 0 === thr ? Promise.reject(value) : AsyncFromSyncIteratorContinuation(thr.apply(this.s, arguments)); | ||
|  |     } | ||
|  |   }, new AsyncFromSyncIterator(s); | ||
|  | } |