Clojure - aguardar por

Uma vez que há um atraso quando um valor de um agente é atualizado, Clojure forneceu uma função 'esperar por' que é usada para especificar o tempo em milissegundos para esperar pela atualização do agente.

Sintaxe

A seguir está a sintaxe.

(await-for time agentname)

Parameters- 'nomedagente' é o agente para o qual a função 'espera por' deve ser definida como. 'time' é o tempo de espera em milissegundos.

Return Value - Retorna lógico falso se retornar devido ao tempo limite, caso contrário, retorna lógico verdadeiro.

Exemplo

Um exemplo de como isso é usado é mostrado no programa a seguir.

(ns clojure.examples.example
   (:gen-class))
(defn Example []
   (def counter (agent 0))
   (println @counter)
   
   (send-off counter + 100)
   (println (await-for 100 counter))
   (println @counter)
   
   (shutdown-agents))
(Example)

Resultado

O programa acima produz a seguinte saída.

0
true
100

Você pode ver no programa acima que o valor do agente é impresso na tela imediatamente porque a função 'esperar por' incorporou um atraso, que permitiu a Clojure atualizar o valor do agente.

clojure_agents