private _resolveSuccessCallback()

in src/SyncTasks.ts [426:451]


        private _resolveSuccessCallback(callback: CallbackSet<T, any>): void {
            if (callback.successFunc) {
                run(() => {
                    const ret = callback.successFunc!!!(this._storedResolution!!!);
                    if (isCancelable(ret)) {
                        if (callback.wasCanceled) {
                            SyncTask.cancelOtherInternal(ret, callback.cancelContext);
                        } else {
                            callback.task!!!.onCancel(context => SyncTask.cancelOtherInternal(ret, context));
                        }
                        // Note: don't care if ret is canceled. We don't need to bubble out since this is already resolved.
                    }
                    if (isThenable(ret)) {
                        // The success block of a then returned a new promise, so
                        ret.then(r => { callback.task!!!.resolve(r); }, e => { callback.task!!!.reject(e); });
                    } else {
                        callback.task!!!.resolve(ret);
                    }
                }, e => {
                    this._handleException(e, 'SyncTask caught exception in success block: ' + e.toString());
                    callback.task!!!.reject(e);
                });
            } else {
                callback.task!!!.resolve(this._storedResolution);
            }
        }