Fixed coroutines as relay connection resolvers

Related PR #379
This commit is contained in:
Syrus Akbary 2016-12-01 21:05:09 -08:00
parent 51c37fef98
commit 3df62d26a7

View File

@ -5,7 +5,7 @@ from functools import partial
import six
from graphql_relay import connection_from_list
from promise import Promise
from promise import Promise, is_thenable, promisify
from ..types import (AbstractType, Boolean, Enum, Int, Interface, List, NonNull, Scalar, String,
Union)
@ -142,8 +142,8 @@ class IterableConnectionField(Field):
resolved = resolver(root, args, context, info)
on_resolve = partial(cls.resolve_connection, connection_type, args)
if isinstance(resolved, Promise):
return resolved.then(on_resolve)
if is_thenable(resolved):
return promisify(resolved).then(on_resolve)
return on_resolve(resolved)