Symbol.asyncIterator
Baseline Widely available
This feature is well established and works across many devices and browser versions. It’s been available across browsers since January 2020.
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.
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