【问题标题】:GraphQL resolution using promises使用 Promise 的 GraphQL 解析
【发布时间】:2017-11-18 11:55:54
【问题描述】:

我是 JavaScript 和 NodeJS 领域的新手。我在 Java 和 C# 方面都有很多经验,但这对我来说都是全新的。

作为 POC,我正在尝试使用 GraphQL 来包装销售人员电话。由于对 salesforce 的调用是异步的,因此我想在定义架构和底层查询之间的绑定时向 GraphQL 返回一个承诺。

但是,当我这样做时,我收到消息“预期可迭代,但没有为字段 Query.getAccounts 找到一个。”

这是我的绝对糟糕的代码:

conn.login('username', 'password' + 'security-token', function(err, userInfo) {
  if (err) {
    console.log(err);
    console.log("Cannot login to Salesforce");
  } else {
    var root = {
      getAccounts: function ({offset, limit}) {
        return new Promise(function(resolve, reject) {
          conn.query("SELECT Id, Name FROM Account", function(err, result) {
            if (err) {
              reject();
            }
            resolve(result);
          });
        });
      }
    }


    var app = express();
    app.use('/graphql', graphqlHTTP({
      schema: schema,
      rootValue: root,
      graphiql: true,
    }));
    app.listen(4000);
    console.log('Running a GraphQL API server at localhost:4000/graphql');
  }
});

我应该使用 Apollo 吗?

【问题讨论】:

    标签: javascript node.js graphql


    【解决方案1】:

    这里的问题是来自 Salesforce 的响应不是列表格式。所以我不得不加入另一个承诺,以从响应中提取我关心的实际数据。

    基本上,这是来自 GraphQL 的误导性消息。

    【讨论】:

      猜你喜欢
      • 2021-06-27
      • 2017-07-18
      • 2019-08-18
      • 2017-09-19
      • 2019-06-19
      • 2016-01-21
      • 1970-01-01
      • 1970-01-01
      • 2017-07-23
      相关资源
      最近更新 更多