Example #1
0
 private void ExecuteCallback(PromiseExecutor executor)
 {
     try {
         executor(ResolveSelf, RejectSelf);
     } catch (Exception ex) {
         RejectSelf(EcmaValueUtility.GetValueFromException(ex));
     }
 }
Example #2
0
        /// <summary>
        /// 初始化一個Promsie實例
        /// </summary>
        /// <param name="executor">Promise執行程序主體</param>
        public Promise(PromiseExecutor <T> executor)
        {
            this.Task = Task <T> .Run <T>(() => {
                executor((T r) => {
                    Result = r;
                    Status = PromiseStatus.Fulfilled;
                }, (Exception e) => {
                    Exception = e;
                    Status    = PromiseStatus.Rejected;
                });

                if (Exception == null)
                {
                    return(Result);
                }
                else
                {
                    throw Exception;
                }
            });
        }
Example #3
0
 public Promise(PromiseExecutor callback)
     : this()
 {
     Guard.ArgumentNotNull(callback, "callback");
     ExecuteCallback(callback);
 }