cancel() {
				bCancelled = true;
				oCancelPromise ||= new Promise(function(fnResolve, fnReject) {
					fnCancelResolve = fnResolve;
					fnCancelReject = fnReject;
				});
				return oCancelPromise;
			}
@function
@param {function} fn - Function that should be wrapped in a promise
@returns {object} Cancelable Promise
@private