docstr: Deserialize with Futures
code: def _deserialize(self, recvd, load):
      """Deserialize with Futures"""
      f = self._Future()
  
      def _chain(_):
          """Chain result through serialization to recvd"""
          if f.done():
              return
          if recvd.exception():
              f.set_exception(recvd.exception())
          else:
              buf = recvd.result()
              try:
                  loaded = load(buf)
              except Exception as e:
                  f.set_exception(e)
              else:
                  f.set_result(loaded)
  
      recvd.add_done_callback(_chain)
  
      def _chain_cancel(_):
          """Chain cancellation from f to recvd"""
          if recvd.done():
              return
          if f.cancelled():
              recvd.cancel()
  
      f.add_done_callback(_chain_cancel)
  
      return f
  
imports: import warnings
  from asyncio import Future
  from collections import deque
  from itertools import chain
  from typing import Any, Awaitable, Callable, Dict, List, NamedTuple, Optional, Tuple, Type, TypeVar, Union, cast, overload
  import zmq
  from zmq import EVENTS, POLLIN, POLLOUT
  from zmq._typing import Literal
label_desc: Use image node_id 13 for calling the _AsyncSocket obj's underlying member method code with example usage: obj._deserialize(recvd, load) and returns: f