Join

Uma operação de join espera até que todas as futures de um conjunto estejam prontas e retorna uma coleção de seus resultados. Isso é semelhante a Promise.all em JavaScript ou asyncio.gather em Python.

XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

Speaker Notes

This slide should take about 4 minutes.

Copie este exemplo para o seu src/main.rs preparado e execute-o a partir daĂ­.

  • Para vĂĄrias futures de tipos disjuntos, vocĂȘ pode usar std::future::join! mas deve saber quantas futures vocĂȘ terĂĄ em tempo de compilação. Isso atualmente estĂĄ no crate futures, em breve serĂĄ estabilizado em std::future.

  • O risco do join Ă© que uma das futures pode nunca ser resolvida, o que faria seu programa travar.

  • VocĂȘ tambĂ©m pode combinar join_all com join!, por exemplo, para unir todas as solicitaçÔes a um serviço http, bem como uma consulta ao banco de dados. Tente adicionar um tokio::time::sleep para o futuro, usando futures::join!. Isso nĂŁo Ă© um timeout (isso requer select!, explicado no prĂłximo capĂ­tulo), mas demonstra join!.