0

XMLHttpRequest を作成し、それを実行して(可能な限り単純にするために同期的に)、結果である配列を返す単純なJavaScript関数があります。

exports.loadBinFile = function() { ... }

そのスクリプトは js ファイル x.js にあり、それに対応する PureScript ファイル x.purs があります。

foreign import loadBinFile :: forall e. Eff (fileLoad :: FILELOAD | e) (Array Int)

それに関してはすべて問題ありませんが、私はブラウザ オブジェクトである XMLHttpRequest を使用しており、pulp run を実行しようとすると、XMLHttpRequest が定義されていないというエラーが表示されます。

上記のオブジェクトを含むxmlhttprequestというnpmパッケージをインストールしようとしましたが、同様のbowerパッケージも試しましたが、両方とも失敗しました。

私はjavascriptに比較的慣れていないので、間違ったことをしようとしている方法は完全に間違っていると思います。これにアプローチする正しい方法は何ですか?

スクリプトを .html ファイル内に配置することでこれを修正できると思いますが、これを正しく行いたい、つまり、.purs ファイルと .js ファイルを一致させ、pulp に仕事をさせたいと考えています。

これを行うにはどうすればよいですか?

ありがとう!

4

1 に答える 1

1

purescript-affjaxXHR リクエストに基づいており、ノードとブラウザーの両方で機能する、試してみることができます。

ただし、自分でやり続けたい場合はXMLHTTPRequest、パッケージをインストールした後でも理由は未定義です。ノードで公開するモジュールnpmも必要になるからです。require

で問題があったと思うので、Affjax で fromxhr2を使用します。その例を使用すると、FFI JS で次のような関数を使用する必要があります。npmxmlhttprequest

var newXHR = function () {
  if (typeof module !== "undefined" && module.require) {
    var XHR = module.require("xhr2");
    return new XHR();
  }
  return new XMLHttpRequest();
}

を呼び出そうとするだけではなく、new XMLHTTPRequest(). affjax FFI コードにもう少し関与していますが、似たようなものを見ることができます。

于 2016-05-07T15:39:32.323 に答える