我想在 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 很陌生,但我将 promise 等同await
于 C# 中的关键字。