首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ClojureScript +动量(node.js)与.format("dddd,MMMM,h:mm:ss“)失败

ClojureScript +动量(node.js)与.format("dddd,MMMM,h:mm:ss“)失败
EN

Stack Overflow用户
提问于 2013-07-05 01:10:36
回答 1查看 915关注 0票数 1

我正在尝试显示当前的日期时间格式,以便在node.js + clojure部署动量上进行控制台操作。

工作节点js代码:

代码语言:javascript
复制
var moment = require("./lib/moment/moment.js");
console.log(moment().format("dddd, MMMM Do YYYY, h:mm:ss a"));

控制台输出:

代码语言:javascript
复制
$ node app1              
Friday, July 5th 2013, 9:57:07 am

因此,我尝试了如下所示的clojureScript代码:

代码语言:javascript
复制
(ns rxcljs.core
  (:use [cljs.nodejs :only [require]])
)
(def log #(.log js/console %))
(def moment (require "./lib/moment/moment.js"))

(->> (-> (moment) 
          (.format "dddd, MMMM Do YYYY, h:mm:ss a")
      )
     (log) 
 ) 

控制台输出变为

代码语言:javascript
复制
$ node app            
FridaynullundefinedJulyundefined5thundefined2013nullundefined9null56null31undefinedam

出于某种原因,Datetime部分显示为未定义的

已编译的js代码:

代码语言:javascript
复制
var rxcljs = {core:{}};
rxcljs.core.log = function(a) {
  return console.log(a)
}; 
rxcljs.core.moment = cljs.nodejs.require.call(null, "./lib/moment/moment.js");
rxcljs.core.log.call(null, rxcljs.core.moment.call(null).format("dddd, MMMM Do YYYY, h:mm:ss a"));

问题的症结似乎并没有那么大的问题:

代码语言:javascript
复制
rxcljs.core.moment.call(null).format("dddd, MMMM Do YYYY, h:mm:ss a")

有什么想法吗?谢谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-07-05 04:31:26

这是因为已知的Moment.js 2.0.0与ClojureScript不兼容,这是由戴维·阿尔滕堡此承诺中修正的。以下是提交消息:

Format函数现在在var上使用"instanceof“,而不是在var的调用中使用"typeof”来确定变量是否是函数。 这修复了与ClojureScript的不兼容性,后者将String.prototype.call定义为一个函数。

目前在开发分支中的版本工作正常。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17479826

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档