Unir
Una operación join espera hasta que todos los futuros estén listos y devuelve una colección de sus resultados. Es similar a Promise.all
en JavaScript o asyncio.gather
en Python.
Speaker Notes
This slide should take about 4 minutes.
Copia este ejemplo en el archivo src/main.rs
que has preparado y ejecútalo desde ahí.
-
En el caso de varios futuros de tipos distintos, puedes utilizar
std::future::join!
, pero debes saber cuántos futuros tendrás en el tiempo de compilación. Esto se encuentra actualmente en el cratefutures
, que pronto se estabilizará enstd::future
. -
The risk of
join
is that one of the futures may never resolve, this would cause your program to stall. -
También puedes combinar
join_all
conjoin!
, por ejemplo, para unir todas las solicitudes a un servicio HTTP, así como una consulta a la base de datos. Prueba a añadir un tokio::time::sleepal futuro mediante
futures::join!. No se trata de un tiempo de espera (para eso se requiere
select!, que se explica en el siguiente capítulo), sino que muestra
join!`.