如何在游乐场更新功能中发出 http 请求?

How to make a http request in a playground update function?

我想从我的 elm 程序发出 http 请求。 我将 openapi-generator https://eriktim.github.io/openapi-elm 用于 http 请求: https://github.com/eriktim/openapi-elm, 我能找到的唯一例子是:
https://github.com/eriktim/openapi-elm/tree/master/example
在那里,一个请求有例如输入 Api.Request Api.Data.PlanetList 并使用发送函数转换:(Result Http.Error a -> msg) -> Request a -> Cmd msg.
send 函数接受一个将请求结果转换为 msg 的函数,但是 returns 它包装在 Cmd 中。 更新函数有类型 update : Msg -> Model -> ( Model, Cmd Msg ) 因此,只要在更新函数中发出请求并将结果放入 return 值中,框架就会从 Cmd.

中得到 msg

现在我想在我的程序中发出请求,但我使用的是 playground game as my main function (example),其中更新函数是 update : Computer -> Model -> Model,因此示例项目中的“技巧”不适用。那么我怎样才能从我的请求调用中获取值呢?

我不太确定 elm-playground 是什么,但这不是您要创建的网络应用程序的正确起点,因为它不支持命令,例如 Http 请求。

您想使用普通/标准 Elm - 请参阅 https://guide.elm-lang.org/install/elm.html and then you want to be building a Program based on Browser.document - https://guide.elm-lang.org/webapps/

希望能助您一臂之力

一个Http请求就是一段数据,供runtime执行。如果 Cmd 没有通过 main update 传递给运行时,实际的 http 调用将永远不会发生。

这就是为什么您不能在简单程序(PlaygroundBrowser.sandbox)中使用 side-effects。