我想在我的 Halogen UI 中使用一些与 moment.js 的绑定来渲染时间跨度,它们的类型类似于
diffMins :: forall eff. Moment -> Moment -> Eff (now :: NOW | eff) Number
如果我想像这样在我的 UI 中使用此功能:
H.span_ [H.text $ diffMins (fromEpoch_ 0) (fromEpoch_ myTimeStamp)]
但这是在,Eff
所以我不能。
我能做的是用这个函数调用时刻:
js:
exports.duration_ = function (millis) {
return moment.duration(millis).humanize();
};
ps:
foreign import duration_ :: Number -> String
humanizeMilliseconds :: Milliseconds -> String
humanizeMilliseconds (Milliseconds n) = duration_ n
我的问题(或几个)然后:
调用 javascript 而不说它是一个Eff
. 如果不是,什么时候认为可以,什么时候不可以?无论哪种方式,我都可以将这些功能视为副作用。
如果我不能改变我打电话给时刻的方式,或者这确实是一个坏主意,有没有办法做到这一点HTML
?