如何从promise DataLoader返回两个变量



我有一个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检查中已被弃用。升级后,您将来将面临许多问题。

最新更新