是否有办法确保在解决过程中某个解析器总是最后运行?
我的特殊用例是,我希望有选择地向客户端返回一些关于运行的查询的信息 - 这些信息仅在所有其他解析器运行后才可用,这取决于用户查询的内容。
让我们说我的根解析器看起来像这样:
{
myQuery(args, context, info) {
return this.dataLayer.load();
}
// This resolver must always be run last
queryInfo(args, context, info) {
return this.dataLayer.queryInfo();
}
}
如何始终确保queryInfo()
最后一次运行?
考虑的方法:
queryInfo()
中的数据包含在myQuery()
返回的数据中。在这种情况下,queryInfo返回的数据并不严格属于myQuery,因此它在语义上不太有吸引力。dataLayer
添加特殊请求跟踪代码。有一些时间上的弱点,也比它的价值更复杂。如果这是我们没有的唯一方式:)。