rusyska55011
@rusyska55011

Как задать задержку js без выделения потока?

Методы SetTimeOut() и setInterval() всегда выделают дополнительный поток и работают независимо. Есть ли способ сделать нормальную Задержку без выделения потока?
Ситуация: Создаю объект для того чтобы сделать слайдера на сайте. Моя функция disappearance() должна сначала сделать плавно картинку невидимой, после чего заменить ее и плавно сделать ее обычной.
Я хочу чтобы код исполнился только после get_invisibility, то есть я как закончится get_invisibility хочу запустить подстановку картинки и сделать ее обычной
class SliderEvent{
    constructor(object, picture_list, timer, animation_speed) {
        this.object = object;
        this.picture_list = picture_list;
        this.timer = timer;
        this.animation_speed = animation_speed;
    }

    __picture = this.next_picture();
    * next_picture(){
        while (true){
            for (let index of this.picture_list) {
                yield index;
            }
        }
    }

    disappearance(){
        let object = this.object;
        let picture = this.__picture;
        let timer = this.timer;
        let animation_speed = this.animation_speed;

        let get_invisibility = setInterval(() => function () {
            //
        }, animation_speed);

    }
}
  • Вопрос задан
  • 71 просмотр
Пригласить эксперта
Ответы на вопрос 1
bingo347
@bingo347 Куратор тега JavaScript
Crazy on performance...
Методы SetTimeOut() и setInterval() всегда выделают дополнительный поток и работают независимо. Есть ли способ сделать нормальную Задержку без выделения потока?
JS однопоточный, колбэки setTimeout и setInterval выполняются на том же потоке. Именно поэтому кстати, их задержка не фиксированная.
Для анимации лучше использовать requestAnimationFrame, так как его срабатывания привязаны непосредственно к отрисовке (строго перед ней) и не нагружают процессор вычислениями, когда он и так нагружен и проседает FPS
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы