def on_complete_match
      promise.add_observer do |_time, try, _error|
        Fear::Try.matcher { |m| yield(m) }.call_or_else(try, &:itself)
      end
      self
    end
def on_complete_match
      promise.add_observer do |_time, try, _error|
        Fear::Try.matcher { |m| yield(m) }.call_or_else(try, &:itself)
      end
      self
    end
When this future is completed match against result.

 If the future has already been completed,
 this will either be applied immediately or be scheduled asynchronously.
 @yieldparam [Fear::TryPatternMatch]
 @return [self]

 @example
   Fear.future { }.on_complete_match do |m|
     m.success { |result| }
     m.failure { |error| }
   end