1. ホーム
  2. ジャバスクリプト

[解決済み] Angular 4のsetTimeout()で遅延と待機を変化させる

2022-03-03 23:28:27

質問

イベントのリストには timestamp . をベースにしたイベントを表示させたいのです。 timestamp :

ディレイを追加する場合。

delay = timestamp(t+1) - timstamp(t)

との相性が悪いのは知っています。 setTimeout しかし、タイムアウトが一定であれば、回避することができます。

次の setTimeout() は前のものを待つのですか?具体的には、もし最初の setTimeout() は5秒、2番目は3秒の遅延があるため、2番目のものが先に表示されます。同じ順番で、次々と実行させたいのですが。

この例は一定の遅延に対して機能しますが、私はリストを反復して取る情報に基づいて遅延を計算したいのです。

for (i = 1; i <= 5; ++i) {
  setDelay(i);
}

function setDelay(i) {
  setTimeout(function(){
    console.log(i);
  }, 1000);
}

解決方法は?

を使用することができます。 IIFE (即座に呼び出される関数式) と関数の再帰性を代用します。こんな感じ。

let i = 0;
(function repeat(){
  if (++i > 5) return;
  setTimeout(function(){
    console.log("Iteration: " + i);
    repeat();
  }, 5000);
})();

生演奏のバイオリン こちら .