Parcourir la source

Add AsyncIterator (#8769)

terurou il y a 6 ans
Parent
commit
2f963dfdb4
2 fichiers modifiés avec 14 ajouts et 0 suppressions
  1. 9 0
      std/js/lib/Iterator.hx
  2. 5 0
      std/js/lib/Symbol.hx

+ 9 - 0
std/js/lib/Iterator.hx

@@ -31,6 +31,15 @@ typedef Iterator<T> = {
 	function next():IteratorStep<T>;
 }
 
+/**
+	Native JavaScript async iterator structure. 
+
+	See [for await...of](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/for-await...of)
+**/
+typedef AsyncIterator<T> = {
+	function next():Promise<IteratorStep<T>>;
+}
+
 typedef IteratorStep<T> = {
 	done:Bool,
 	?value:T

+ 5 - 0
std/js/lib/Symbol.hx

@@ -53,6 +53,11 @@ extern class Symbol {
 	**/
 	static var iterator(default, null):Symbol;
 
+	/**
+		A method that returns the default AsyncIterator for an object.
+	**/
+	static var asyncIterator(default, null):Symbol;
+
 	/**
 		Retrieve symbol from a given `object`.