using System; namespace Implab { public interface IPromise { /// /// Тип результата, получаемого через данное обещание. /// Type ResultType { get; } /// /// Обещание является выполненым, либо успешно, либо с ошибкой, либо отменено. /// bool IsResolved { get; } bool IsRejected { get; } bool IsFulfilled { get; } /// /// Исключение возникшее в результате выполнения обещания, либо причина отмены. /// Exception RejectReason { get; } /// /// Adds specified listeners to the current promise. /// /// The handler called on the successful promise completion. /// The handler is called if an error while completing the promise occurred. /// The current promise. void Then(IResolvable next); /// /// Преобразует результат обещания к заданному типу и возвращает новое обещание. /// IPromise Cast(); void Join(); void Join(int timeout); } }