code: def promise(cls, fn, *args, **kwargs):
          
          task = cls.task(target=fn, args=args, kwargs=kwargs)
          task.start()
          return task
docs: Used to build a task based on a callable function and the arguments.
          Kick it off and start execution of the task.
  
          :param fn: callable
          :param args: tuple
          :param kwargs: dict
          :return: SynchronousTask or AsynchronousTask