Propiedad JavaScript Symbol.asyncIterator

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

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *