【问题标题】:How to return the response of a post request in qraphql如何在graphql中返回post请求的响应
【发布时间】:2021-12-26 23:52:24
【问题描述】:

我正在开发一个在后端使用 GraphQL 的应用程序,我想实现一个人脸比较方法。我正在使用facepp npm package,它为我提供了一个 API 来执行比较。我遇到的问题是,当我的解析器运行时,它会在收到来自 facepp 的响应之前完成。如何让它返回来自 facepp 的响应?

    module.exports = {
      Mutation: {
         checkFace: async () => {
           console.log("Checking.....");

        let confidence;

        var parameters = {
          image_url1: "link to image 1",

          image_url2: "link to image 2",
        };

        facepp.post("/compare", parameters, function (err, res) {
            if (!err) {
                confidence = res.confidence;
              //return res.confidence doesn't work
            } else {
                confidence = "There was an error"
            }
        });

        return confidence
    },
},

};

【问题讨论】:

  • 不要复制...使用等待!!
  • 你能再澄清一下吗?请问有什么办法?

标签: javascript node.js graphql facepp


【解决方案1】:

经过几次试验和研究,我想出了一个可行的解决方案。我的原始代码中的问题是我没有正确处理 facepp.post 方法的异步处理程序。如果有人遇到同样的问题,下面是我的代码的工作实现。

module.exports = {
    Mutation: {
        checkFace: async () => {
            let confidence;
            const callCheck = () => {
                return new Promise((resolve, reject) => {
                    var parameters = {
                        image_url1: "link to image 1",
                        image_url2: "link to image 2",
                    };
                    facepp.post("/compare", parameters, function (err, 
                  res) {
                        if (!err) {
                            confidence = res.confidence;
                            resolve();
                        } else {
                            confidence = "error";
                            reject();
                        }
                    });
                });
            };
            await callCheck();
            return confidence;
        },
    },
};

【讨论】:

    猜你喜欢
    • 2021-11-20
    • 2021-07-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-05-27
    • 2018-01-01
    • 1970-01-01
    • 2018-12-06
    相关资源
    最近更新 更多