Несколько запросов Ajax параллельно с Fay

Я пытаюсь перенести JS-код, который выполняет два AJAX-вызова параллельно, но оба из них необходимо выполнить перед началом работы. С JQuery вы можете сделать:

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

Теперь я не знаю, как справиться с Фэй. Многопоточные части haskell недоступны. Я действительно не хочу монаду состояний, потому что я хочу, чтобы обе выборки запускались параллельно, а не последовательно.

Я обнаружил в источнике Fay этот пример, Cont.hs. Я не уверен, что это действительно может решить проблему, но в любом случае он не скомпилируется, если я просто запускаю "fay Cont.hs"; он жалуется на то, что не знает GHC.Base.Monad. Это с нынешним GIT-главой Фэй.

РЕДАКТИРОВАТЬ: Я хотел бы, если возможно, приятной семантики Haskell, если нет... тогда да, оборачивая jquery "затем". Я не уверен, как добиться продолжения или FRP с Fay, руководство с этим будет оценено (для FRP это сомнительно, достаточно ли Fay достаточно выразителен). Поэтому в качестве второго варианта я бы просто обернул "тогда", но, если возможно, мне бы очень хотелось, чтобы он принимал любое количество одновременных запросов ajax, как это делает JS (возможно, через массив), что может быть сложно достичь. Я сделаю это сам, но думаю, что не смогу.

Я видел в привязках fay-jquery этот комментарий:

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

Мне удалось скомпилировать Cont.hs, мне пришлось использовать флаг --no-ghc. Так что я проверю немного, хотя флаг отключает проверку типов, не без ума от этого.

Это огорчает необходимость полагаться на библиотеки JS для таких операций, когда я убежден, что как язык Haskell лучше приспособлен для решения таких проблем.

EDIT2: так что мне кажется, что я хочу, сопрограммы. Я видел некоторый код на Haste, который делал похожие вещи, но не делал именно этого. Я также хотел бы принять решение этой проблемы с помощью Haste или GHCJS.

РЕДАКТИРОВАТЬ3: Ну, в normall Haskell кажется, что это делает это; Я думаю, что это будет работать с GHCJS и Haste, но в Fay это, вероятно, должно быть упаковкой JS, я думаю...

0 ответов

Другие вопросы по тегам