FratmScript 🤌🏻

Async e generatori

mo vir facc dichiara una funzione asincrona (async function) e aspett aspetta che una Promise finisca (await). Funziona anche con le frecce: mo vir (x) => …, e nei cicli: pe aspett (… dint …).

facc* nome() { … } dichiara un generatore (function*): ogni caccia valore produce il prossimo valore (yield). Un generatore si scorre con pe ogni o con lo spread.

chiamm { aspetta } da "fratm"

mo vir facc cucina(pizza) {
    stamm a dì("Inforno", pizza)
    aspett aspetta(300)
    piglie pizza + " pronta"
}

mo vir facc servizio() {
    chist è pizze = aspett Promise.all([cucina("margherita"), cucina("marinara")])
    stamm a dì(pizze.join(", "))
}

servizio()

Output

Inforno margherita
Inforno marinara
margherita pronta, marinara pronta
facc* numeri(fino) {
    pe (tien i = 1; i <= fino; i++) {
        caccia i
    }
}

pe ogni (chist è n dint numeri(3)) {
    stamm a dì(n)
}
stamm a dì([...numeri(5)].join(" "))

Output

1
2
3
1 2 3 4 5

Prova questa sezione nel playground