Вам нужно передать обратный вызов на setInterval
вместо того, чтобы сразу вызывать вашу функцию, используя в качестве примера анонимную функцию стрелки.
setInterval(() => openUpPage("myURl"), 20000);
Функция стрелки не обязательна.
setInterval(function() { openUpPage("myURl") }, 20000);
При тестировании я обнаружил, что ошибка "TypeError: "callback" argument must be a function"
, выданная setInverval
, связана с node.js. Фрагмент кода из вопроса выполняется без ошибок внутри codepen (с использованием Chrome).
Это вызвано тем, что чистый JavaScript не может реализовать такие функции, связанные с таймером, из-за отсутствия поддержки низкого уровня. Поэтому браузеры и node.js не обязательно используют ту же реализацию, что и в документации.
Несмотря на то, что вызов функции сразу же, как видно из фрагмента вопросов, не имеет смысла в сочетании с setInterval
независимо от реализации.