code: async def wait(self) -> None:
          
          if self.triggered_token is not None:
              return
  
          futures = [asyncio.ensure_future(self._triggered.wait(), loop=self.loop)]
          for token in self._chain:
              futures.append(asyncio.ensure_future(token.wait(), loop=self.loop))
  
          def cancel_not_done(fut: 'asyncio.Future[None]') -> None:
              for future in futures:
                  if not future.done():
                      future.cancel()
  
          async def _wait_for_first(futures: Sequence[Awaitable[Any]]) -> None:
              for future in asyncio.as_completed(futures):
                  # We don't need to catch CancelledError here (and cancel not done futures)
                  # because our callback (above) takes care of that.
                  await cast(Awaitable[Any], future)
                  return
  
          fut = asyncio.ensure_future(_wait_for_first(futures), loop=self.loop)
          fut.add_done_callback(cancel_not_done)
          await fut
docs: Coroutine which returns when this token has been triggered