| @@ -51,7 +51,7 namespace Implab.Fx | |||||
| 51 | { | 
             | 
        51 | { | |
| 52 | var timer = new Timer(m_delay); | 
             | 
        52 | var timer = new Timer(m_delay); | |
| 53 | 
             | 
        53 | |||
| 54 | 
            
                        timer.AutoReset =  | 
        
             | 
        54 | timer.AutoReset = false; | |
| 55 | timer.SynchronizingObject = m_syncronizationObject; | 
             | 
        55 | timer.SynchronizingObject = m_syncronizationObject; | |
| 56 | timer.Elapsed += new ElapsedEventHandler(timer_Elapsed); | 
             | 
        56 | timer.Elapsed += new ElapsedEventHandler(timer_Elapsed); | |
| 57 | 
             | 
        57 | |||
| 1 | NO CONTENT: modified file, binary diff hidden | 
             | 
        NO CONTENT: modified file, binary diff hidden | 
| @@ -151,27 +151,69 namespace Implab { | |||||
| 151 | 
            
             | 
        
             | 
        151 | if (success == null && error == null) | |
| 152 | return this; | 
             | 
        152 | return this; | |
| 153 | 
             | 
        153 | |||
| 154 | AddHandler(new ResultHandlerInfo() { | 
             | 
        154 | var medium = new Promise<T>(); | |
| 155 | resultHandler = success, | 
             | 
        155 | ||
| 156 | errorHandler = error | 
             | 
        156 | var handlerInfo = new ResultHandlerInfo(); | |
| 157 | }); | 
             | 
        |||
| 158 | 
             | 
        157 | |||
| 159 | return this; | 
             | 
        158 | if (success != null) | |
| 
             | 
        159 | handlerInfo.resultHandler = x => { | |||
| 
             | 
        160 | try { | |||
| 
             | 
        161 | success(x); | |||
| 
             | 
        162 | medium.Resolve(x); | |||
| 
             | 
        163 | } catch (Exception e) { | |||
| 
             | 
        164 | medium.Reject(e); | |||
| 
             | 
        165 | } | |||
| 
             | 
        166 | }; | |||
| 
             | 
        167 | else | |||
| 
             | 
        168 | handlerInfo.resultHandler = x => medium.Resolve(x); | |||
| 
             | 
        169 | ||||
| 
             | 
        170 | if (error != null) | |||
| 
             | 
        171 | handlerInfo.errorHandler = x => { | |||
| 
             | 
        172 | try { | |||
| 
             | 
        173 | error(x); | |||
| 
             | 
        174 | } catch { } | |||
| 
             | 
        175 | medium.Reject(x); | |||
| 
             | 
        176 | }; | |||
| 
             | 
        177 | else | |||
| 
             | 
        178 | handlerInfo.errorHandler = x => medium.Reject(x); | |||
| 
             | 
        179 | ||||
| 
             | 
        180 | AddHandler(handlerInfo); | |||
| 
             | 
        181 | ||||
| 
             | 
        182 | return medium; | |||
| 160 | } | 
             | 
        183 | } | |
| 161 | 
             | 
        184 | |||
| 162 | 
            
             | 
        
             | 
        185 | public Promise<T> Then(ResultHandler<T> success) { | |
| 163 | 
            
             | 
        
             | 
        186 | return Then(success, null); | |
| 164 | } | 
             | 
        187 | } | |
| 165 | 
             | 
        188 | |||
| 
             | 
        189 | public Promise<T> Error(ErrorHandler error) { | |||
| 
             | 
        190 | return Then(null, error); | |||
| 
             | 
        191 | } | |||
| 
             | 
        192 | ||||
| 166 | 
            
             | 
        
             | 
        193 | public Promise<T> Anyway(Action handler) { | |
| 167 | 
            
             | 
        
             | 
        194 | if (handler == null) | |
| 168 | return this; | 
             | 
        195 | return this; | |
| 
             | 
        196 | ||||
| 
             | 
        197 | var medium = new Promise<T>(); | |||
| 
             | 
        198 | ||||
| 169 | 
            
             | 
        
             | 
        199 | AddHandler(new ResultHandlerInfo { | |
| 170 | resultHandler = x => handler(), | 
             | 
        200 | resultHandler = x => { | |
| 171 | errorHandler = x => handler() | 
             | 
        201 | try { | |
| 
             | 
        202 | handler(); | |||
| 
             | 
        203 | medium.Resolve(x); | |||
| 
             | 
        204 | } catch (Exception e) { | |||
| 
             | 
        205 | medium.Reject(e); | |||
| 
             | 
        206 | } | |||
| 
             | 
        207 | }, | |||
| 
             | 
        208 | errorHandler = x => { | |||
| 
             | 
        209 | try { | |||
| 
             | 
        210 | handler(); | |||
| 
             | 
        211 | } catch { } | |||
| 
             | 
        212 | medium.Reject(x); | |||
| 
             | 
        213 | } | |||
| 172 | }); | 
             | 
        214 | }); | |
| 173 | 
             | 
        215 | |||
| 174 | return this; | 
             | 
        216 | return medium; | |
| 175 | } | 
             | 
        217 | } | |
| 176 | 
             | 
        218 | |||
| 177 | 
            
             | 
        
             | 
        219 | /// <summary> | |
        
        General Comments 0
    
    
  
  
                      You need to be logged in to leave comments.
                      Login now
                    
                