code: def resolve_serially(self, root):
      def execute_field_callback(results, resolver):
          response_name, field_resolver = resolver
  
          result = field_resolver.execute(root)
  
          if result is Undefined:
              return results
  
          if is_thenable(result):
  
              def collect_result(resolved_result):
                  results[response_name] = resolved_result
                  return results
  
              return result.then(collect_result)
  
          results[response_name] = result
          return results
  
      def execute_field(prev_promise, resolver):
          return prev_promise.then(
              lambda results: execute_field_callback(results, resolver)
          )
  
      return functools.reduce(
          execute_field,
          self.partial_resolvers,
          Promise.resolve(self.fragment_container()),
      )
  
imports: import functools
  from wandb_promise import Promise, is_thenable, promise_for_dict
  from ...pyutils.cached_property import cached_property
  from ...pyutils.default_ordered_dict import DefaultOrderedDict
  from ...type import GraphQLInterfaceType, GraphQLList, GraphQLNonNull, GraphQLObjectType, GraphQLUnionType
  from ..base import ResolveInfo, Undefined, collect_fields, get_field_def
  from ..values import get_argument_values
  from ...error import GraphQLError
label_desc: Use image node_id 6 for calling the Fragment obj's underlying member method code with example usage: obj.resolve_serially(root) and returns: functools, results, prev_promise, results, result, results