首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何从JSFunction返回JSObject?

如何从JSFunction返回JSObject?
EN

Stack Overflow用户
提问于 2016-09-27 02:45:46
回答 1查看 73关注 0票数 1

我想从FFI函数定义中返回对Javascript对象的引用,以便稍后能够操作该对象:

代码语言:javascript
复制
import           Data.Aeson
import           Foreign.JavaScript (JSObject, NewJSObject, unsafeCreateJSObject)
import           Foreign.RemotePtr (RemotePtr)
import           Graphics.UI.Threepenny.Core hiding (text)

mkJSObject :: JSFunction NewJSObject -> UI JSObject
mkJSObject f = askWindow >>= liftIO . flip unsafeCreateJSObject f

polyLine :: [[Double]] -> Value -> UI JSObject
polyLine points = mkJSObject . f points
  where
    f :: [[Double]] -> Value -> JSFunction NewJSObject
    f = ffi "L.polyline(%1, %2).addTo(map)"

但是底层的Javascript窗口似乎不能公开访问。有没有其他方法可以创建对Javascript对象的引用?

EN

回答 1

Stack Overflow用户

发布于 2016-09-30 03:08:00

实际上要简单得多:只需从JSFunction返回一个JSObject,它就会被正确编组:

代码语言:javascript
复制
polyLine :: [[Double]] -> Value -> UI JSObject
polyLine points = callFunction . f points
  where
    f :: [[Double]] -> Value -> JSFunction JSObject
    f = ffi "L.polyline(%1, %2).addTo(map)"
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39710155

复制
相关文章

相似问题

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