Symbol.asyncIterator
El símbolo conocido Symbol.asyncIterator
especifica el AsyncIterator por defecto para un objeto. Si se establece esta propiedad en un objeto, es un iterable asíncrono y puede utilizarse en un bucle for await...of
.
Descripción
El símbolo Symbol.asyncIterator
es un símbolo incorporado que se utiliza para acceder al método @@asyncIterator
de un objeto. Para que un objeto sea iterable asíncrono, debe tener una clave Symbol.asyncIterator
.
Atributos de la propiedad Symbol.asyncIterator |
|
---|---|
Sobrescribir | No |
Numerable | No |
Configurable | No |
Ejemplos
Iterables asíncronos definidos por el usuario
Puedes definir tu propio iterable asíncrono estableciendo la propiedad [Symbol.asyncIterator]
en un objeto.
js
const myAsyncIterable = {
async *[Symbol.asyncIterator]() {
yield "hello";
yield "async";
yield "iteration!";
},
};
(async () => {
for await (const x of myAsyncIterable) {
console.log(x);
// resultado esperado:
// "hello"
// "async"
// "iteration!"
}
})();
Cuando crees una API, recuerda que los iterables asíncronos están diseñados para representar algo iterable — como un flujo de datos o una lista —, no para reemplazar completamente las devoluciones de llamada y los eventos en la mayoría de las situaciones.
Iterables asíncronos incorporados
Actualmente no hay objetos JavaScript incorporados que tengan la clave [Symbol.asyncIterator]
establecida por defecto. Sin embargo, los flujos de WHATWG están preparados para ser el primer objeto incorporado que sea iterable asíncrono, con [Symbol.asyncIterator]
recientemente aterrizando en la especificación.
Especificaciones
Specification |
---|
ECMAScript Language Specification # sec-symbol.asynciterator |
Compatibilidad con navegadores
BCD tables only load in the browser