'Calls the method provided as an argument until the Promise satisfied or BrokenPromise
Arguments:
check_func (callable): Promise function to be fulfilled.
desc (str): Description of the Promise, used in log messages.
result (bool): Indicates whether we need result 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=30):

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