教育目的のために、私はJavaScriptでコードの次の部分を書きました。目標は、テレタイプのマシンをシミュレートすることです。コンテンツが書き込まれた後、マシンは一時停止してから再開します。setIntervalとsetTimeoutの間のコンフリクト
var str = 'Some text';
strArray = str.split("");
window.onload = function teleType() {
var ctrl = 0;
var wrapId = document.getElementById("wrap");
var type = setInterval(function() {
wrapId.innerHTML += strArray[ctrl];
if (ctrl == strArray.length) {
wrapId.innerHTML = "";
ctrl = 0;
clearInterval(type);
}
ctrl++;
}, 2000);
setTimeout(teleType, 3000);
}
しかし、これらの間隔(mlliseconds)を持つマシンは、奇妙な振る舞いを持ち始めます。文字(インデックス)をジャンプしたり、文字列(配列)の終わりに達することなく先頭から始まります。 setInterval
とsetTimeout
の間に何が起こっていますか?
、のようなあなたはどのように 'setInterval'と' setTimeout'の作品を読みました**の教育目的のために**? – smnbbrv
@smnbbrv私の考えでは、この例では 'setTimeout'は' setInterval'が完了した後にのみ実行されます。 –