javascript - Graphql 解析器不返回任何数据
问题描述
我设置了一个解析器来查询模拟数据库文件(一个 json)。
Query: {
users: (_, filters, { dataSources }) => {
console.log(dataSources.userAPI.getAllUsers(filters))
return dataSources.userAPI.getAllUsers(filters);
}
}
userAPI.getALLUsers 如下。首先,我想过滤用户列表。然后对于每个过滤的用户,我想在返回映射的用户之前添加更多的字段
function getAllUsers(args) {
const { targetId, skip, limit } = args;
const filteredUsers = new Promise((resolve, reject) => {
const users = db.users.filter(u => {
if (u.apps[targetId]) return u;
});
if (users.length === 0) return reject();
else return resolve(users);
});
filteredUsers.then((users, err) => {
if (err) console.log(err);
else {
const mappedUsers = users.map(u => {
const withReturnFields = {
email: u.email,
fullname: u.fullname
};
return withReturnFields;
});
return mappedUsers.slice(skip, skip + limit);
}
});
}
我认为我的承诺没有按预期工作。有什么见解吗?我的模式都设置正确。我尝试了控制台日志记录
解决方案
您的getAllUsers
函数返回undefined
. 当解析器返回undefined
时,意味着找不到对象,您应该返回一个承诺。
return filteredUsers.then((users, err) => {
推荐阅读
- r - 如何使用 R 在 Wordcloud 中突出显示消极和积极的词
- javascript - 打开手机键盘(JS)时防止调整大小事件
- javascript - 如何全局更改primaryColor?
- python - 从 oauth2client.service_account 导入 ServiceAccountCredentials:无法导入名称“opentype”
- javascript - 从 IIFE 内部递归
- json - 我如何在 swift 4 中执行以下简单的 JsonObject ?我需要代码和消息的值
- c# - get-property 中使用的表达式体函数成员
- python - 如果前一个匹配包含一个字符,则不匹配
- javascript - 我的 javascript 框上需要一个关闭按钮
- encryption - 如何使用 SAS 加密 IDClient