##// END OF EJS Templates
fixed TransientPromiseException handling
cin -
r99:8ddf1648eca4 v2
parent child
Show More
@@ -18,7 +18,7 namespace Implab {
18 Type PromiseType { get; }
18 Type PromiseType { get; }
19
19
20 /// <summary>
20 /// <summary>
21 /// Обещание является выполненым, либо успешно, либо с ошибкой.
21 /// Обещание является выполненым, либо успешно, либо с ошибкой, либо отменено.
22 /// </summary>
22 /// </summary>
23 bool IsResolved { get; }
23 bool IsResolved { get; }
24
24
@@ -73,9 +73,9 namespace Implab {
73 var res = errorHandler(err);
73 var res = errorHandler(err);
74 if (medium != null)
74 if (medium != null)
75 medium.Resolve(res);
75 medium.Resolve(res);
76 } catch (TransientPromiseException err2) {
76 /*} catch (TransientPromiseException err2) {
77 if (medium != null)
77 if (medium != null)
78 medium.Reject(err2.InnerException);
78 medium.Reject(err2.InnerException);*/
79 } catch (Exception err2) {
79 } catch (Exception err2) {
80 if (medium != null)
80 if (medium != null)
81 medium.Reject(err2);
81 medium.Reject(err2);
@@ -203,7 +203,7 namespace Implab {
203 /// <exception cref="InvalidOperationException">Данное обещание уже выполнено</exception>
203 /// <exception cref="InvalidOperationException">Данное обещание уже выполнено</exception>
204 public void Reject(Exception error) {
204 public void Reject(Exception error) {
205 if (BeginTransit()) {
205 if (BeginTransit()) {
206 m_error = error;
206 m_error = error is TransientPromiseException ? error.InnerException : error;
207 CompleteTransit(REJECTED_STATE);
207 CompleteTransit(REJECTED_STATE);
208 OnStateChanged();
208 OnStateChanged();
209 } else {
209 } else {
General Comments 0
You need to be logged in to leave comments. Login now