2015-05-21 2 views
3

Вот пример из Clojure для смелого и правды:Как предотвратить невыполнение обещания от подвески?

(time 
(let [butter-promise (promise)] 
    (doseq [butter [yak-butter-international butter-than-nothing baby-got-yak]] 
    (future (if-let [satisfactory-butter (satisfactory? (mock-api-call butter))] 
       (deliver butter-promise satisfactory-butter)))) 
    (println "And the winner is:" @butter-promise))) 

Что делать, если ни один из масла продуктов не удовлетворяют наши критерии?

ответ

3
(let [butter-promise (promise)] 
    ;; ... 
    (if-let [winner (deref butter-promise 10000 nil)] 
    (println "And the winner is:" winner) 
    (println "Butter timed out.")) 
Смежные вопросы