如何在此 Affjax 调用上定义类型签名

How to define the type signature on this Affjax call

我正在使用 Affjax 和 launchAff 编写这个简单的程序。

import Network.HTTP.Affjax as Affjax
import Control.Monad.Aff (launchAff)

test1 = launchAff $ do Affjax.get "/api"

这给了我以下错误

 58  test1 = launchAff $ do Affjax.get "/api"
     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

 No type class instance was found for

 Network.HTTP.Affjax.Response.Respondable _0

 The instance head contains unknown type variables. Consider adding a type annotation.

 in value declaration test1

 where _0 is an unknown type

我知道 Respondable 需要在这里定义,但我真的不知道如何做。

非常感谢任何帮助。

感谢

您需要注释您的 test1 函数,让编译器知道您希望从该 ajax 调用中返回什么。

test1 = launchAff do
  Affjax.get "/api" :: Affjax _ Foreign

您可以为您的 return 类型选择 these instances 中的任何一种,或者如果您希望自己的数据类型被 returned,请为 Respondable 编写一个实例它。

编辑:我编辑了源代码。提供的代码片段不是很有用,因为您没有对 AJAX 响应做任何事情。由于 AffjaxAff 内部运行,您可以使用 do 符号将 GET 调用的结果绑定到一个变量并从那里继续使用它。