画面上のテキストの外観をアニメーション化できるように、javascript で実行を一時停止したいと考えています。私のコードは現在これです:
function AnimateWord(word) {
for (var i = 0; i <= word.length; i++) {
myTest.textContent += word.charAt(i);
// need to pause here and then continue
}
}
私はいくつかの調査を行いましたが、JavaScriptでこれを行うための推奨される方法はsetTimeout
.自分)。
setTimeout
これを回避する方法はありますか、それとも再帰ループで立ち往生していますか?
編集:
いくつかの追加のテストに基づいて、次を使用してみましたPromise.timeout
:
for (var i = 0; i <= word.length; i++) {
WinJS.Promise.timeout(1000).then(TypeLetter(word.charAt(i)));
}
function TypeLetter(letter) {
myTest.textContent += letter;
}
しかし、これは実際には一時停止していないようです。実際、タイムアウトを完全に無視しているようです。私も試しました:
setTimeout(TypeLetter(word.charAt(i)), 1000);
基本的に同じ結果です。 このページは、タスクを待ってから実行する必要があることを暗示しているようです。私は WinJS にまったく慣れていませんが、プロミスをawait
C# のキーワードと同一視しています。