code: function(cb) {
          var timeout;
          this.chain(function(next) {
              function evaluate() {
                  var ccb = cb.bind(api);
                  var result = ccb();
                  if (result) {
                      clearInterval(poll);
                      if (timeout !== undefined) clearTimeout(timeout);
                      next();
                  }
              }
              var api = this;
              var poll = setInterval(evaluate, api._untilInterval || 30);
              // to set a timeout for condition to be met, set the _untilTimeout property to ms value
              if (api.untilTimeout) {
                  timeout = setTimeout(function() {
                      if (poll !== undefined) {
                          clearInterval(poll);
                          // to catch timeout of until conditions, set onUntilTimeout handler
                          if (api.onUntilTimeout) api.onUntilTimeout(next);
                          // otherwise execution flow simply continues as if condition was met
                          else next();
                      }
                  }, api.untilTimeout);
              }
          });
          return this;
      }
docs: until - pause execution flow until [cb] returns true