ソースを参照

Add AsyncIterator (#8769)

terurou 6 年 前
コミット
2f963dfdb4
2 ファイル変更14 行追加0 行削除
  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`.