如何在游乐场更新功能中发出 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 调用将永远不会发生。
这就是为什么您不能在简单程序(Playground
和 Browser.sandbox
)中使用 side-effects。
我想从我的 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 调用将永远不会发生。
这就是为什么您不能在简单程序(Playground
和 Browser.sandbox
)中使用 side-effects。