与Fay并行的多个ajax查询

时间:2013-08-02 20:16:41

标签: haskell fay

我正在寻找端口JS代码,该代码在并行运行两个AJAX调用,但需要在运行之前完成。 使用JQuery,您可以:

$.when($.getJSON('/configVal'),
    $.getJSON('/configdesc'))
    .then(function(configByPluginResponse, configSpecResponse) {

现在我不确定如何处理Fay。 haskell的多线程部分不可用。我真的不想要一个状态monad,因为我希望两个提取都以并行方式运行,而不是按顺序运行。

我在Fay来源中发现了这个例子,Cont.hs。我不确定它是否能真正解决问题,但无论如何,如果我只运行“fay Cont.hs”,它就无法编译;它抱怨不知道GHC.Base.Monad。这是当前GIT的Fay负责人。

编辑:如果可能的话,我想要令人满意的Haskell语义,如果不是......那么是的,包装jquery的“然后”。我不确定如何使用Fay实现延续或FRP,我将不胜感激(对于FRP it's questionable wether Fay is expressive enough)。所以作为第二个选择,我只需要包装“then”但是如果可能的话我真的希望它接受任意数量的并发ajax请求,就像JS那样(可能通过数组),这可能很复杂。我会自己试一试,但我想我不会成功。

我看到in the fay-jquery bindings这条评论:

-- TODO: jQuery['when'](): figure out Deferred first

我确实设法编译Cont.hs,我不得不使用--no-ghc标志。所以我会稍微检查一下,虽然这个标志禁用了类型检查,但并没有为此疯狂。

当我确信Haskell能够更好地解决此类问题时,必须依赖JS库进行此类操作,这是令人沮丧的。

EDIT2 :所以看起来我想要的是协同程序。我已经看到一些Haste代码做了相关的事情,但没有做到这一点。我也会接受Haste或GHCJS解决这个问题的方法。

EDIT3 :在normall Haskell好吧this does it;我想它适用于GHCJS和Haste,但在Fay中它可能必须包装JS我猜...

0 个答案:

没有答案