GraphQLparsing器不等待数据库写入

一直试图学习GraphQL和我有一个graphql变异,成功地创build一个用户在MySQL数据库,但解决schemeFN没有返回由mysql查询(由result.insertId访问)返回的ID。 但是,如果我注销结果,日志有正确的值(我知道我可以清理一下,一旦开始工作)。 所有提取数据的查询都可以正常工作。 有人有主意吗? 提前致谢。

resolve: async (parentValue, args) => { const res = await addUser(args) const id = await res.insertId console.log('Returning: ', id); // This logs out the correct id return await id // In graphiql, the id returned is null and is returned WAY before the log above it. Not sure why that write is so slow, but that's another issue } // addUser function defined in another file module.exports = { addUser: (args) => { const { firstName, lastName, username, password, occupation, email } = args return db.query(` INSERT INTO users (firstName, lastName, userName, password, occupation, email) VALUES (?, ?, ?, ?, ?, ?)`, [ firstName, lastName, username, password, occupation, email ]) } } // Class to make wrap mysql with Promises (from https://codeburst.io/node-js-mysql-and-promises-4c3be599909b) class Database { constructor(config) { this.connection = mysql.createConnection(config); } query(sql, args) { return new Promise((resolve, reject) => { this.connection.query(sql, args, (err, rows) => { if (err) return reject(err); resolve(rows); }); }); } close() { return new Promise((resolve, reject) => { this.connection.end(err => { if (err) return reject(err); resolve(); }); }); } } module.exports = new Database(config); 

**更新而不是试图返回新创build的字段的ID,我试图得到的ID然后获取新创build的用户,并完美的作品。 那么我在这里做错了什么? 为什么我必须获取新用户而不是仅仅返回ID? 我以为这可能是因为addUser突变的types被设置为UserType(具有字段id,firstName,lastName等),但是我创build了一个NewUserType只有一个id的字段,但仍然不起作用。 想知道这里发生了什么。

  resolve: async (parentValue, args) => { const res = await addUser(args) const id = await res.insertId return getUser(id) }