Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/clojure/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Clojure 简单启动项目不使用cljs和异步_Clojure_Clojurescript_Core.async_Boot Clj - Fatal编程技术网

Clojure 简单启动项目不使用cljs和异步

Clojure 简单启动项目不使用cljs和异步,clojure,clojurescript,core.async,boot-clj,Clojure,Clojurescript,Core.async,Boot Clj,我有一个非常简单的项目。我用boot和cljs创建了有史以来最简单的项目。它编译成功,我能够在html中看到正确的日志。当我添加了对async的基本支持时,我得到了以下信息: No such namespace: clojure.core.async, could not locate clojure/core/async.cljs, clojure/core/async.cljc, or Closure namespace "clojure.core.async" 该项目的结构如下: exe

我有一个非常简单的项目。我用boot和cljs创建了有史以来最简单的项目。它编译成功,我能够在html中看到正确的日志。当我添加了对async的基本支持时,我得到了以下信息:

No such namespace: clojure.core.async, could not locate clojure/core/async.cljs, clojure/core/async.cljc, or Closure namespace "clojure.core.async"
该项目的结构如下:

exemplo_cljs
    html
       index.html
    src
       exemplo_cljs
           core.cljs
    build.boot
index.html的内容:

<!doctype html>
<html lang="en">
    <head>
        <title>Hello</title>
    </head>
    <body>
        <h2>Hello</h2>
        <script src="main.js"></script>
    </body>
</html>
和build.boot

(set-env!
 :source-paths #{"src"}
 :resource-paths #{"html"}

 :dependencies '[[adzerk/boot-cljs "1.7.170-3"]
                 [org.clojure/core.async "0.2.371"]])

(require '[adzerk.boot-cljs :refer [cljs]])

除了core.cljs文件中通道的require和def以及build.boot中添加的依赖项之外,原始工作项目具有相同的基本结构,这是因为在ClojureScript中,core.async位于
cljs.core.async
下,而不是
clojure.core.async

(set-env!
 :source-paths #{"src"}
 :resource-paths #{"html"}

 :dependencies '[[adzerk/boot-cljs "1.7.170-3"]
                 [org.clojure/core.async "0.2.371"]])

(require '[adzerk.boot-cljs :refer [cljs]])
因此,您只需将ns表单更改为:

(ns exemplo-cljs.core
  (:require [cljs.core.async :as async]))

这是因为在ClojureScript中,core.async位于
cljs.core.async
之下,而不是
clojure.core.async
之下

因此,您只需将ns表单更改为:

(ns exemplo-cljs.core
  (:require [cljs.core.async :as async]))

出于某种奇怪的原因,它在莱恩起作用了。当我迁移到boot时,我感到困惑。cljs版本是否不同?我认为cljs/Clojure导入名称空间最近有所改变。看:出于某种奇怪的原因,它在莱恩起作用了。当我迁移到boot时,我感到困惑。cljs版本是否不同?我认为cljs/Clojure导入名称空间最近有所改变。见: