如果您将修改后的上下文传递给 GraphQL 解析器,这是否会传播到所有下游解析器?这是在 GraphQL 规范中指定的还是特定于实现的?
为了澄清一个例子说我有一个像下面这样的查询
{
companies {
employees {
positions {
title
}
}
}
}
假设我从contextA
进入companies
查询开始,然后我CompanyResolvers
得到了我的位置superSpecialContext
并将其传递给employees
数据加载器
export const CompanyResolvers = {
employees: async ({ id }: CompanyDTO, args: object, contextA: Context) => {
const superSpecialContext = await getSuperSpecialContext();
return context.dataLoaders.employees.load({ id: company.id, context: superSpecialContext });
}
};
当我到达positions
解析器时,我现在是在使用superSpecialContext
原版还是原版contextA
(我实际上更喜欢这种情况)?
export const EmployeeResolvers = {
positions: async ({ id }: EmployeeDTO, args: object, context: Context) => {
// is my context here contextA or superSpecialContext?
}
};