gpt4 book ai didi

javascript - 使用 PureScript 和 Pulp 从服务器下载二进制文件的正确方法

转载 作者:行者123 更新时间:2023-12-03 07:00:25 25 4
gpt4 key购买 nike

我有一个简单的 javascript 函数,它创建一个 XMLHttpRequest ,运行它(同步以使事情尽可能简单)并返回一个作为结果的数组。

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 完成它的工作。

我应该怎样做呢?

谢谢!

最佳答案

你可以给 purescript-affjax a try,它基于 XHR 请求,在 Node 和浏览器中都可以工作。

如果您想继续自己执行此操作,即使通过 npm 安装软件包后 XMLHTTPRequest 仍然未定义,原因是您还需要 require 它在节点中公开的模块。

我们在 Affjax 中使用 npm 中的 xhr2,因为我认为我们在 xmlhttprequest 方面遇到了一些问题,因此在您的 FFI JS 中使用该示例你会想要使用这样的函数:

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

而不仅仅是尝试调用new XMLHTTPRequest()。您可以看到类似的内容,尽管在affjax FFI code中涉及更多一些。 .

关于javascript - 使用 PureScript 和 Pulp 从服务器下载二进制文件的正确方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37087197/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com