问题标签 [clojurescript]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
401 浏览

clojure - 是否有一个可以在 clojure 和 clojurescript 中使用的发布-订阅

我正在尝试编写一个可以在 clojure 和 ClojureScript 中运行的游戏Crossfire,我需要一个可以在两者中运行的发布-订阅机制。我见过laminaShoreleave,但两者都依赖于各自的环境。

我需要一个事件系统,订阅者可以在其中等待消息。

0 投票
0 回答
522 浏览

clojure - 使用 ClojureScript 和 Domina 时出现未定义的方法错误

我最近开始在一个项目中试用 ClojureScript。以下代码:

当使用“高级”优化编译时,单击“a.delete”链接时将触发以下错误。

但是使用“简单”优化编译时没有问题。

有人能指出我正确的方向吗?谢谢。

0 投票
1 回答
567 浏览

emacs - clojurescript中浏览器Repl、浏览器、http服务器之间的交互

我一直在玩 clojurescriptone - 整洁的项目 - 试图了解 clojurescript 的工作原理。我不清楚浏览器、浏览器 repl 和 http 服务器这三个组件是如何交互的。

我在我的开发环境中使用 emacs

为了更好地理解 ClojureScript(CS),我决定尝试移植 clojurescriptone(CS1) 以使用 lein2 并使用 nrepl 作为我的 repl。该端口确实有效,我能够让 CS1 环境运行并与浏览器交互。我更喜欢 - 现在 - 不要启动一个劣质的 lisp 进程来使用 CS repl,而是在 clojure repl 中运行 CS repl。唯一的缺点是 CS repl 从标准输入获取输入,而 emacs 提示我使用标准输入。为了解决这个问题,我试图替换 CS1 中的一些代码,以便它从 Chas Emerick 编写的 piggieback 库中启动 repl。

在这样做的过程中,我已经达到了我对这些组件如何交互的理解的极限。显然,从我可以收集到的浏览器 repl 是一个侦听某个端口的“服务器”;虽然一直以来我都认为是某种客户端向 http 服务器发送请求并在评估结果后将输出重定向到浏览器(如何??)。现在我不确定情况是否如此。

这些组件如何交互?

抱歉解释太长了!!!

席德

0 投票
1 回答
2263 浏览

javascript - Javascript 到 ClojureScript 的转换

我正在尝试将以下行转换为 Cljs,

对应的地图是什么,

在 ClojureScript 中?enableHighAccuracy 是一个符号吗?

0 投票
3 回答
200 浏览

google-closure-compiler - 用于 Clojurescript 的闭包库 2029 jar

我一直无法找到用于clojurescript的新 google-closure-library 的 .jar 。

(源代码下载可在此处获得:http ://code.google.com/p/closure-library/downloads/list )

我也试过(不成功)通过closurebuilder编译它。(我已经尝试按照建议使用 deps.js 编译它,但这也不起作用)。

如果有人可以将我指向 2029 jar 或教我如何从源代码编译它,那就太好了。

谢谢!

编辑:澄清一下,我不是指闭包编译器,我指的是一个 .jar,例如在这里找到:http: //mvnrepository.com/artifact/org.clojure/google-closure-library

0 投票
3 回答
13532 浏览

error-handling - 如何在 Clojurescript 中捕获任何 Javascript 异常?

在我的通信层中,我需要能够捕获任何 javascript 异常,将其记录下来并像往常一样继续。在 Clojurescript 中捕获异常的当前语法要求我需要指定被捕获的异常的类型。

我尝试在 catch 表单中使用 nil、js/Error、js/object 并且它没有捕获任何 javascript 异常(可以将字符串作为对象的类型)。

我将不胜感激任何提示如何在 Clojurescript 中本地完成此操作。

0 投票
1 回答
720 浏览

macros - 如何在 Clojurescript 的宏中共享原子?

我在 clj (clojure) 命名空间中有以下代码。

(ns project.clojure.clojurescript 宏)

在另一个 cljs (clojurescript) 命名空间中,我有以下内容

我编译了我的 clojurescript 代码,并在我的浏览器中打开它,不幸的是,我收到以下错误。

查看我编译的 clojurescipt 代码中的第 22348 行,我看到以下内容。

问题是 project.clojure.trace_history 没有在 main.js 的任何地方定义。我知道出了什么问题,但我不确定如何解决它。我尝试了其他解决方案,例如将跟踪历史记录放在共享的 clojure 文件中,并将跟踪历史记录放在 cljs 文件本身中。似乎没有一个工作。鉴于我想在这个宏的所有编译之间有一个共享的全局原子,我如何在 Clojurescript 中这样做?

0 投票
3 回答
2874 浏览

javascript - 可从 ClojureScript 使用的 JavaScript GUI 库?

在我正在进行的一个 Web 开发项目中,我们需要创建一个页面(实际上是它自己的迷你应用程序),该页面将具有交互式“Web 2.0”界面,更像是图形桌面应用程序,而不是典型的网页。

我希望使用一种更高级的语言,它可以编译成 JS 用于客户端逻辑,而不是直接在 JS 中编程,而 ClojureScript 是我的首选。

我正在寻找一个可以在 ClojureScript 中使用的 JS GUI 库,它支持类似于“桌面”GUI 库(如 Swing、QT、wxWidgets 等)的编程风格。它应该允许我创建弹出<div>“窗口”,放置按钮/标签/等小部件。在它们中,将事件处理程序附加到小部件,等等。你知道哪一种会起作用吗?

0 投票
1 回答
240 浏览

clojure - Clojure/ClojureScript 中的哪些内容可以帮助创建分布式“蚂蚁”演示?

我假设大多数 Clojure 专家都看过 Rich Hickey 的 ant 演示(http://gist.github.com/1093917http://blip.tv/clojure/clojure-concurrency-819147)。如果要尝试制作同一个应用程序的分布式版本,但基于浏览器,每个浏览器控制一个蚂蚁,Clojure/ClojureScript 是否有任何东西可以帮助behave函数的事务性质(假设behave在客户端上运行)? 还是 Clojure/ClojureScript 的 STM 功能真的不适合分布式使用?

即,如果在客户端我在 (3,2) 并且想要移动到 (3,3),并且在我的客户端(浏览器)的世界中(这可能有点陈旧,与 Rich 的原始版本相同)线程有点陈旧)那个方格是空的,但是我将请求发送到服务器,在服务器的世界中那个方格是满的,ClojureScript 中是否有任何分布式 STM 可以告诉我——不,那个方格是满的并且您必须恢复该动作,因此您的下一步必须再次从(3,2)开始。在 Rich 的原始演示文稿中,它是全自动的,内置于​​ Clojure 的 STM 功能中。但是分布式,是否必须更明确,或者是否有内置的功能来做到这一点?

如果这种东西没有内置到 Clojure/ClojureScript 中,还有其他平台可能更合适吗?

0 投票
1 回答
346 浏览

clojure - Clojurescript 中的可选“回调”参数是否令人不悦?

在 Clojurescript 中编写高阶函数时,实际上可以省略传入函数的参数。

例如,以下是合法的 Clojurescript 代码,但非法的 Clojure 代码:

(定义 x(原子 5))

(交换!x(fn [] 6))

高阶“交换!” function 需要一个带有一个参数的函数,但是您可以省略它,程序仍然可以正常编译/运行。

如果它使我的 Clojurescript 代码更清晰,使用此功能是否会被视为不好的形式?或者,它只是滥用 Clojurescript 限制吗?有什么意见吗?

谢谢你的想法!