如何在graphql中返回post请求的响应
Posted
技术标签:
【中文标题】如何在graphql中返回post请求的响应【英文标题】:How to return the response of a post request in qraphql 【发布时间】: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
,
,
;
【问题讨论】:
不要复制...使用等待!! 你能再澄清一下吗?请问有什么办法? 【参考方案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;
,
,
;
【讨论】:
以上是关于如何在graphql中返回post请求的响应的主要内容,如果未能解决你的问题,请参考以下文章