La propiedad Symbol.asyncIterator se usa para establecer un objeto como iterable asíncrono. Las propiedades iterables de este objeto se pueden repetir usando un bucle for await…of .
Un objeto iterable asíncrono es cualquier objeto que devuelve una función que produce un AsyncIterator para su propiedad Symbol.asyncIterator.
El símbolo Symbol.asyncIterator es un símbolo integrado que se usa para acceder al método @@asyncIterator de un objeto.
Nota: Para que un objeto sea iterable asíncrono, debe tener una clave Symbol.asyncIterator.
Atributos de propiedad de Symbol.asyncIterator | |
---|---|
escribible | no |
enumerables | no |
Configurable | no |
Los códigos de ejemplo para la propiedad anterior son los siguientes:
Ejemplo 1:
Javascript
<script> // JavaScript program to demonstrate // the Symbol.asyncIterator Property // Defining an async iterable const GFG = { // Setting the [Symbol.asyncIterator] // property on the object async*[Symbol.asyncIterator]() { // Using yield keyword to pause // and resume generator function let i = 0; while (i < 10) { if (i % 3 == 0) { yield i; } i++; } } }; (async () => { // Iterate over the async iterable // object i.e. myAsyncIterable // using for await... loop for await (const x of GFG) { document.write(x + "<br>"); } })(); </script>
Producción:
0 3 6 9
Ejemplo 2:
Javascript
<script> // JavaScript program to demonstrate // the Symbol.asyncIterator Property // Defining an async iterable const myAsyncIterable = { // Setting the [Symbol.asyncIterator] // property on the object async*[Symbol.asyncIterator]() { let i = 0; while (i < 5) { // Using yield keyword to // yield values of i yield i++; } } }; (async () => { // Iterate over the async iterable // object i.e. myAsyncIterable // using for await... loop for await (const num of myAsyncIterable) { document.write(num + "<br>"); } })(); </script>
Producción
0 1 2 3 4
Compatibilidad con navegadores: los navegadores compatibles con JavaScript Symbol.asyncIterator Property se enumeran a continuación:
- Google Chrome
- Firefox
- Borde
- Ópera
- Safari
Publicación traducida automáticamente
Artículo escrito por surbhityagi15 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA