GQL 解析器:返回 null
GQL resolver: returning null
我正在从 API 调用数据并且有一个如下所示的解析器:
Query: {
async getSomething(parent, args, ctx, info) {
const kek = yada.aol.emails(function (err, res) {
return[{name: "lmao"}]
// returns null every time
})
return [{name: "lol"}]
// returns correctly
},
},
但是,我需要 return 的数据是函数内的响应。我想知道为什么我 return 嵌套在该函数 returns null
中,以及我如何继续适当地调整数据?
namecheap.domains.getList
函数是异步的。您的最后一个 return
在回调 function (err, res) {}
之前执行。你需要return一个承诺。
namecheap.domains.getList
支持 Promise,您可以直接 return 它(但我不知道那是什么),或者您可以让回调函数解析 Promise:
Query: {
getDomains(parent, args, ctx, info) {
return new Promise((resolve, reject) => {
namecheap.domains.getList((err, res) => {
if (err) return reject(err);
resolve(res);
})
});
},
},
我正在从 API 调用数据并且有一个如下所示的解析器:
Query: {
async getSomething(parent, args, ctx, info) {
const kek = yada.aol.emails(function (err, res) {
return[{name: "lmao"}]
// returns null every time
})
return [{name: "lol"}]
// returns correctly
},
},
但是,我需要 return 的数据是函数内的响应。我想知道为什么我 return 嵌套在该函数 returns null
中,以及我如何继续适当地调整数据?
namecheap.domains.getList
函数是异步的。您的最后一个 return
在回调 function (err, res) {}
之前执行。你需要return一个承诺。
namecheap.domains.getList
支持 Promise,您可以直接 return 它(但我不知道那是什么),或者您可以让回调函数解析 Promise:
Query: {
getDomains(parent, args, ctx, info) {
return new Promise((resolve, reject) => {
namecheap.domains.getList((err, res) => {
if (err) return reject(err);
resolve(res);
})
});
},
},