graphql是否自动执行猫鼬查询?

时间:2018-08-10 06:32:58

标签: node.js mongodb mongoose graphql

如果我从graphql解析器返回查询,如下所示:

someResolver = () => SomeModel.find()

它可以正常工作并响应数据库结果。

这是怎么回事?为什么我不必为此打.exec()

1 个答案:

答案 0 :(得分:0)

尽管Model.find()返回Query,但是它是PromiseLike类型。

以下是文档:http://mongoosejs.com/docs/promises.html#built-in-promises

然后,在graphql resolver中,您可以返回promise或使用async/await或仅返回一个常数值

https://graphql.org/learn/execution/#asynchronous-resolvers

  

在执行过程中,GraphQL将等待Promises,Future和Tasks完成之后再继续操作,并且会以最佳的并发性进行操作。

Model.find().exec()返回一个完整的承诺,它也很好用。