首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在bucklescript中解析带promise的查询类型

在bucklescript中解析带promise的查询类型
EN

Stack Overflow用户
提问于 2018-02-25 23:02:16
回答 1查看 88关注 0票数 0

我得到了这个查询,我试图用reason graphql_ppx库来测试。code gist

这是编辑器类型注释的屏幕截图:

使用@mhallin/graphql_ppx库,我设置了以下查询:

代码语言:javascript
复制
    module FilmQuery = [%graphql
  {|
    {
      allFilms {
        films {
          id
          title
          releaseDate
        }
      }
    }
|}
];

exception Graphql_error(string);

/* Construct a "packaged" query; FilmQuery takes no arguments: */
let filmQuery = FilmQuery.make();

/* Send this query string to the server */
let query = filmQuery##query // type string

当我将查询发送到服务器时,我得到了以下错误,它返回以下错误。

代码语言:javascript
复制
{ errors: [ { message: 'Must provide query string.' } ] }

但是,如果您查询(Js.log),您会看到它被构造为which works on https://swapi.apis.guru

代码语言:javascript
复制
query films($first: Int)  {
  allFilms(first: $first)  {
   films  {
     id  
     title  
     releaseDate  
   }
  }
}

如果你使用Js.log(filmQuery),你会得到:

代码语言:javascript
复制
{ query: 'query   {\nallFilms  {\nfilms  {\nid  \ntitle  \nreleaseDate  \n}\n}\n}',

变量: null,parse: Function: parse }

如果您在Altair中运行相同的查询,并检查devtools网络选项卡中发送的查询,您将看到:

代码语言:javascript
复制
{"query":"    query films($first: Int) {\n      allFilms(first: $first) {\n        films {\n          id\n          title\n          releaseDate\n        }\n      }\n    }\n","variables":{}}

编辑器被提供此类型错误:"- error bucklescript this has type: string但某处需要: Js.t({.. query : string,variables : Js.Json.t }) string“

如何解析此承诺/单位类型?谢谢。

所以新的问题是:为什么sendQuery()函数不能识别filmQuery##parse键?

EN

回答 1

Stack Overflow用户

发布于 2018-02-27 21:47:52

您的sendQuery方法需要一个从FilmQuery.make()返回的类型,但您传递给它的只是query属性,这是一个string

您可以通过将filmQuery作为参数传递到sendQuery中来修复此问题,而不仅仅是通过query变量引用的filmQuery中的query属性。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48974908

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档