# async.map (Compartido)

> Llama a `handler(valor, clave)` para cada entrada de la tabla, en el orden de `pairs`, y junta en una lista los resultados que no son `nil`. El `handler` puede pausar con `async.wait`.

- **Plataforma**: MY Multiplayer (MYMP)
- **Tipo**: Función Lua
- **Lado**: Compartido
- **Categoría**: Temporizadores y asíncrono
- **URL**: https://wiki.mymp.gg/es/async.map

## Sintaxis

```lua
table|bool async.map(table list, function handler [, function callback = nil])
```

## Parámetros

| Nombre | Tipo | Descripción |
| --- | --- | --- |
| `list` | `table` | Tabla que se recorre. |
| `handler` | `function` | Se llama con el valor y la clave de cada entrada. |
| `callback` | `function` | Se llama con la lista de resultados cuando todo termina. *(por defecto: `nil`)* |

## Retorno

Dentro de un hilo async y sin `callback`, la lista de resultados. Si no, se ejecuta en un hilo nuevo y devuelve `true`.

## Ejemplo

```lua
async.map(getElementsByType("player"), function(player)
    async.yield()
    return getPlayerName(player)
end, function(names)
    outputDebugString(table.concat(names, ", "))
end)
```

### Atención

Fuera de un hilo async y sin `callback`, los resultados se pierden.

## Ver también

- [async.all (Compartido)](https://wiki.mymp.gg/es/async.all.md): Ejecuta cada función de la lista en su propio hilo, todas a la vez, y hace que el hilo actual espere hasta que todas terminen.
- [async.thread (Compartido)](https://wiki.mymp.gg/es/async.thread.md): Ejecuta una función en un hilo async nuevo, en el acto. La llamada vuelve cuando la función termina o hace su primera pausa, como con async.wait.
