@classmethod<EOL><INDENT>def promise(cls, fn, *args, **kwargs):<DEDENT>
task = cls.task(target=fn, args=args, kwargs=kwargs)<EOL>task.start()<EOL>return task<EOL>
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