我有一个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查询中获得这两个变量?
尝试使用异步数据加载器,而不是基于Promise的数据加载器,因为Promise在石墨烯V3检查中已被弃用。升级后,您将来将面临许多问题。