Dado que hay un retraso cuando se actualiza un valor de un agente, Clojure proporcionó una función de 'espera' que se usa para especificar el tiempo en milisegundos para esperar a que se actualice el agente.
Sintaxis
A continuación se muestra la sintaxis.
(await-for time agentname)
Parameters- 'agentname' es el agente para el que se debe establecer la función 'await-for'. 'tiempo' es el tiempo de espera en milisegundos.
Return Value - Devuelve falso lógico si regresa debido al tiempo de espera; de lo contrario, devuelve verdadero lógico.
Ejemplo
En el siguiente programa se muestra un ejemplo de cómo se usa.
(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)
Salida
El programa anterior produce la siguiente salida.
0
true
100
Puede ver en el programa anterior que el valor del agente se imprime en la pantalla inmediatamente porque la función 'esperar' incorporó un retraso, lo que permitió a Clojure actualizar el valor del agente.
clojure_agents