【发布时间】:2022-07-08 11:45:17
【问题描述】:
我有一个 python promise DataLoader 对象,它是从 GraphQL 查询中调用的,如下所示。
Loader 类;
class ExampleLoader(DataLoader):
def batch_load_fn(self, _):
data = get_data()
return Promise.resolve([data])
example_loader = ExampleLoader()
GraphQL 查询;
def resolve_data(self, info, **kwargs):
return example_loader.load('data').then(lambda data: data.demands[getattr(self, 'material_number')])
这很好用。
但是,我需要从 get_data 函数返回两个变量,还需要将这些变量从 Loader 返回到 GraphQL 查询。所以我尝试了以下解决方案。
class ExampleLoader(DataLoader):
def batch_load_fn(self, _):
data, error_dict = get_data()
return Promise.resolve([data]), error_dict
example_loader = ExampleLoader()
def resolve_data(self, info, **kwargs):
data, error_dict = example_loader.load('data')
return data.then(lambda data: data.demands[getattr(self, 'material_number')])
但我收到There is no current event loop in thread 错误。如何在我的 GraphQL 查询中获取这两个变量?
【问题讨论】:
标签: python promise graphene-python graphene-django