Это может быть непростая проблема, но это зависит от того, чего вы хотите достичь.
Саймон Хениш уже прекрасно отметил, что вы можете использовать Методы жизненного цикла компонента. componentWillLoad
для запуска интервала и componentDidUnload
будет хорошим выбором.
Но обратите внимание, что Stencil js отображает ваши компоненты только при необходимости. Это также означает, что они удаляются, когда Трафарет «думает», что они больше не нужны. Чем весь код вашего компонента похож на удаленный, что также, конечно, останавливает ваш setInterval.
Когда у вас есть интервал в 60 секунд, я могу представить, что пользователь может прокручивать или делать другие вещи, которые могут сделать ваш компонент быть выгруженным, и когда пользователь возвращается к вашему компоненту, интервал начинается снова с нуля. (Вот почему я сказал в начале может быть хитрым , потому что в некоторых случаях это поведение хорошо в некоторых нет).
Если нет - вам, возможно, нужно сохранить свой интервал и затем начинать с того, где это остановилось. Для этого может быть достаточно переменной stati c.
Но, возможно, лучшим подходом может быть использование декоратора @ Method .
@Method()
checkSomeStuff() {
// check stuff
}
This делает метод вашего компонента глобальным, и вы можете вызывать его в своем индексе. html например, вот так:
index. html
<your-component id="comp"></your-component>
<script>
document.getElementById("comp").checkSomeStuff(); // yes you can call the function in that way
</script>
Это дает вам возможность запустить SetInterval в индексе. html.