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);
        }
    });
}

我认为我的诺言没有按预期实现。有什么见解吗?我的架构都已正确设置。我尝试过控制台记录

yonghuzhuxiao 回答:Graphql解析器未返回任何数据

您的getAllUsers函数返回undefined。当解析程序返回undefined时,表示找不到该对象,而应返回一个Promise。

return filteredUsers.then((users,err) => {
本文链接:https://www.f2er.com/3140659.html

大家都在问