changeset 74:c4140283575c v2

minor fixes
author cin
date Mon, 08 Sep 2014 17:40:46 +0400
parents 3b8393be3441
children 4439140706d0
files Implab/IPromise.cs Implab/Promise.cs
diffstat 2 files changed, 38 insertions(+), 2 deletions(-) [+]
line wrap: on
line diff
--- a/Implab/IPromise.cs	Fri Sep 05 00:27:14 2014 +0400
+++ b/Implab/IPromise.cs	Mon Sep 08 17:40:46 2014 +0400
@@ -17,20 +17,55 @@
         /// </summary>
         Type PromiseType { get; }
 
+        /// <summary>
+        /// Обещание является выполненым, либо успешно, либо с ошибкой.
+        /// </summary>
         bool IsResolved { get; }
 
+        /// <summary>
+        /// Обещание было отменено.
+        /// </summary>
         bool IsCancelled { get; }
 
         IPromise Then(Action success,ErrorHandler error);
         IPromise Then(Action success);
         IPromise Error(ErrorHandler error);
+        /// <summary>
+        /// Обрабатывает либо ошибку, либо результат. Событие отмены не обрабатывается.
+        /// </summary>
+        /// <param name="handler">Обработчик.</param>
+        /// <remarks>После обработке ошибки, она передается дальше.</remarks>
         IPromise Anyway(Action handler);
+
+        /// <summary>
+        /// Обрабатывает либо ошибку, либо результат, либо отмену обещания.
+        /// </summary>
+        /// <param name="handler">Обработчик.</param>
+        /// <remarks>После обработке ошибки, она передается дальше.</remarks>
         IPromise Finally(Action handler);
+        /// <summary>
+        /// Обработчик для регистрации отмены обещания, событие отмены не может быть подавлено.
+        /// </summary>
+        /// <returns>Новое обещание, связанное с текущим.</returns>
+        /// <param name="handler">Обработчик события.</param>
+        /// <remarks>Если обработчик вызывает исключение, то оно передается обработчику ошибки, результат работы
+        /// которого будет передан связанному обещанию</remarks>
         IPromise Cancelled(Action handler);
 
+        /// <summary>
+        /// Преобразует результат обещания к заданному типу и возвращает новое обещание.
+        /// </summary>
         IPromise<T> Cast<T>();
 
+        /// <summary>
+        /// Синхронизирует текущий поток с обещанием.
+        /// </summary>
         void Join();
+        /// <summary>
+        /// Синхронизирует текущий поток с обещанием.
+        /// </summary>
+        /// <param name="timeout">Время ожидания, по его истечению возникнет исключение.</param>
+        /// <exception cref="TimeoutException">Превышено время ожидания.</exception>
         void Join(int timeout);
 
     }
--- a/Implab/Promise.cs	Fri Sep 05 00:27:14 2014 +0400
+++ b/Implab/Promise.cs	Mon Sep 08 17:40:46 2014 +0400
@@ -447,8 +447,9 @@
         }
 
         public IPromise<T> Cancelled(Action handler) {
-            AddHandler(null, null, handler, null);
-            return this;
+            var medium = new Promise<T>(this, true);
+            AddHandler(null, null, handler, medium);
+            return medium;
         }
 
         /// <summary>