gpt4 book ai didi

clojure - 如何在ClojureScript/core.async中停止go block ?

转载 作者:行者123 更新时间:2023-12-04 03:50:24 24 4
gpt4 key购买 nike

是否有一种优雅的方式来阻止正在运行的go块?

(不引入标志并使用支票/分行污染代码)

(ns example
(:require-macros [cljs.core.async.macros :refer [go]])
(:require [cljs.core.async :refer [<! timeout]]))

(defn some-long-task []
(go
(println "entering")

; some complex long-running task (e.g. fetching something via network)
(<! (timeout 1000))
(<! (timeout 1000))
(<! (timeout 1000))
(<! (timeout 1000))

(println "leaving")))

; run the task
(def task (some-long-task))

; later, realize we no longer need the result and want to cancel it
; (stop! task)

最佳答案

抱歉,今天无法使用core.async。创建go块后得到的结果是一个普通 channel ,该块的结果将被放到该 channel 上,尽管这并没有给您实际块本身的任何处理方法。

关于clojure - 如何在ClojureScript/core.async中停止go block ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32570986/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com