Improved support for promise-like connections

This commit is contained in:
Syrus Akbary 2016-11-03 20:24:26 -07:00
parent 3fa65aa343
commit e6733d56b2

View File

@ -5,7 +5,7 @@ from functools import partial
import six import six
from graphql_relay import connection_from_list 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, from ..types import (AbstractType, Boolean, Enum, Int, Interface, List, NonNull, Scalar, String,
Union) Union)
@ -140,8 +140,8 @@ class ConnectionField(Field):
return resolved return resolved
on_resolve = partial(connection_type.connection_resolver, args=args, context=context, info=info) on_resolve = partial(connection_type.connection_resolver, args=args, context=context, info=info)
if isinstance(resolved, Promise): if is_thenable(resolved):
return resolved.then(on_resolve) return promisify(resolved).then(on_resolve)
return on_resolve(resolved) return on_resolve(resolved)