Callable can take one of the following forms, where the second form is used when an asynchronous call can set the promise with a value that is only valid for the duration of the Callable call ResultType(AsyncOp) AsyncOp is aFOnlineAsyncOp& or TOnlineAsyncOp& ResultType is any type, or aTFutureto allow for an asynchronous result void(AsyncOp, TPromise&&) AsyncOp is aFOnlineAsyncOp& or TOnlineAsyncOp& ResultType is any non-void type