# async.all (Compartido)

> 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.

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

## Sintaxis

```lua
any async.all(table tasks)
```

## Parámetros

| Nombre | Tipo | Descripción |
| --- | --- | --- |
| `tasks` | `table` | Lista de funciones. Las entradas que no son funciones pasan directamente al resultado. |

## Retorno

Un valor por entrada de la lista, en el mismo orden: el primer valor que devolvió cada función, o la propia entrada si no es una función. Solo funciona dentro de un hilo async. Fuera de uno, registra un error y devuelve `false`.

## Ejemplo

```lua
async.thread(function()
    local first, second = async.all({
        function()
            async.wait(300)
            return "first"
        end,
        function()
            async.wait(100)
            return "second"
        end,
    })
    outputDebugString(first .. " " .. second)
end)
```

### Atención

Si una de las funciones da error, se convierte en un error en el hilo que espera, y los resultados de las demás se pierden.

## Ver también

- [async.promise (Compartido)](https://wiki.mymp.gg/es/async.promise.md): Ejecuta handler(resolve, reject) en un hilo nuevo y hace que el hilo actual espere hasta que llame a resolve o reject. Sirve para esperar una función que responde por callback.
- [async.map (Compartido)](https://wiki.mymp.gg/es/async.map.md): 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.
- [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.
