Clojure - espera

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