'Calls the method provided as an argument until the Promise satisfied or BrokenPromise
Arguments:
check_func (callable): Function that accepts no arguments and returns a boolean indicating whether the promise is fulfilled.
desc (str): Description of the Promise, used in log messages.
result (bool): Indicates whether we need a results from Promise or not
timeout (float): Maximum number of seconds to wait for the Promise to be satisfied before timing out.'

def _wait_for(self, check_func, desc, result=False, timeout=200, try_interval=0.2):

    if result:
        return Promise(check_func, desc, timeout=timeout, try_interval=try_interval).fulfill()
    else:
        return EmptyPromise(check_func, desc, timeout=timeout, try_interval=try_interval).fulfill()
