using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace Implab { public interface IPromise: IPromiseBase { T Join(); T Join(int timeout); IPromise Then(ResultHandler success, ErrorHandler error); IPromise Then(ResultHandler success, ErrorHandler error); IPromise Then(ResultHandler success); IPromise Error(ErrorHandler error); IPromise Error(ErrorHandler error); IPromise Map(ResultMapper mapper, ErrorHandler error); IPromise Map(ResultMapper mapper); IPromise Chain(ChainedOperation chained, ErrorHandler error); IPromise Chain(ChainedOperation chained); IPromise Cancelled(Action handler); IPromise Finally(Action handler); IPromise Anyway(Action handler); } }