typestar

async y await en Rust

Una async fn devuelve un futuro: nada corre hasta que un runtime lo sondea.

use tokio::time::{sleep, Duration};

async fn fetch(name: &str) -> String {
    sleep(Duration::from_millis(50)).await;
    format!("{name} loaded")
}

#[tokio::main]
async fn main() {
    let first = fetch("basics").await;
    println!("{first}");

    let second = fetch("traits");
    println!("not started yet");
    println!("{}", second.await);
}

Cómo funciona

  1. Los cuerpos async fn son perezosos — llamar a uno no hace trabajo.
  2. .await cede el control hasta que ese futuro esté listo.
  3. #[tokio::main] envuelve main en el runtime que los impulsa.

Palabras clave y builtins usados aquí

El intento, en números

Líneas
16
Caracteres a escribir
324
Tokens
100
Ritmo de tres estrellas
110 tpm

Al ritmo de tres estrellas de 110 tokens por minuto, este intento toma unos 55 segundos.

Escribe este fragmento

Paso 1 de 6 en Async con tokio; paso 9 de 15 en Concurrencia y async.

← Anterior Siguiente →