Class: Promise::Trace
Instance Attribute Summary
Attributes inherited from Promise
Class Method Summary collapse
Instance Method Summary collapse
- 
  
    
      #initialize(depth, block)  ⇒ Trace 
    
    
  
  
  
    constructor
  
  
  
  
  
  
  
    A new instance of Trace. 
Methods inherited from Promise
#<<, #>>, #^, #act?, #action, #always, error, #exception!, #exception?, #fail, #inspect, #realized?, #reject, #reject!, #rejected?, #resolve, #resolve!, #resolved?, #then, #trace, value, #value, when
Constructor Details
#initialize(depth, block) ⇒ Trace
Returns a new instance of Trace
| 338 339 340 341 342 343 344 345 346 347 348 349 350 351 | # File 'opal/stdlib/promise.rb', line 338 def initialize(depth, block) @depth = depth super success: -> { trace = Trace.it(self).reverse trace.pop if depth && depth <= trace.length trace.shift(trace.length - depth) end block.call(*trace) } end | 
Class Method Details
.it(promise) ⇒ Object
| 324 325 326 327 328 329 330 331 332 333 334 335 336 | # File 'opal/stdlib/promise.rb', line 324 def self.it(promise) current = [] if promise.act? || promise.prev.nil? current.push(promise.value) end if prev = promise.prev current.concat(it(prev)) else current end end |