mirror of
https://github.com/graphql-python/graphene.git
synced 2025-02-23 15:10:48 +03:00
(relay connection) promisify result from async method
This commit is contained in:
parent
51c37fef98
commit
f64934f85d
|
@ -12,6 +12,7 @@ from ..types import (AbstractType, Boolean, Enum, Int, Interface, List, NonNull,
|
|||
from ..types.field import Field
|
||||
from ..types.objecttype import ObjectType, ObjectTypeMeta
|
||||
from ..types.options import Options
|
||||
from ..utils.compat_asyncio_promise import promisify
|
||||
from ..utils.is_base_type import is_base_type
|
||||
from ..utils.props import props
|
||||
from .node import is_node
|
||||
|
@ -139,7 +140,7 @@ class IterableConnectionField(Field):
|
|||
|
||||
@classmethod
|
||||
def connection_resolver(cls, resolver, connection_type, root, args, context, info):
|
||||
resolved = resolver(root, args, context, info)
|
||||
resolved = promisify(resolver(root, args, context, info))
|
||||
|
||||
on_resolve = partial(cls.resolve_connection, connection_type, args)
|
||||
if isinstance(resolved, Promise):
|
||||
|
|
12
graphene/utils/compat_asyncio_promise.py
Normal file
12
graphene/utils/compat_asyncio_promise.py
Normal file
|
@ -0,0 +1,12 @@
|
|||
import promise
|
||||
|
||||
def promisify(resolved):
|
||||
try:
|
||||
import asyncio
|
||||
if isinstance(resolved, asyncio.Future) or \
|
||||
asyncio.iscoroutine(resolved):
|
||||
return promise.promisify(resolved)
|
||||
except:
|
||||
pass
|
||||
|
||||
return resolved
|
Loading…
Reference in New Issue
Block a user