如何等待 javascript 函数完成后再执行它? [已关闭]

问题描述 投票:0回答:1

我正在尝试用 JavaScript 模仿 LCD 面板来传递有关游戏的信息。字母一个接一个地出现,中间有一点延迟。当游戏需要显示消息时,它会调用该函数。

问题是,当在完成第一个字符串的显示之前再次调用该函数时,它会开始显示新字符串,从而混淆所有字母。

我需要找到一种方法来延迟第二个(或后续字符串)的显示,直到它完成第一个字符串的显示。

我尝试过使用setInterval,因为我认为它应该是同步的,但似乎不是。我不熟悉 Promise 或其他实现方式。

这是我正在使用的代码:

function updateMonitor(ujo, str) {
    ujo.html('');
    var currentIndex = 0;
    intervalId = setInterval(function(){
        ujo.text(ujo.text() + str.substring(currentIndex, currentIndex + 1))
        currentIndex++;

        // We've reached the end of the string, stop calling this function
        if (currentIndex == str.length) clearInterval(intervalId);
    }, 5);
}
javascript
1个回答
-1
投票

您的字母

setInterval()
可能没问题。

setTimeout()
的末尾使用 updateMonitor()
 
,并且
那个
超时结束后再次调用 updateMonitor()

© www.soinside.com 2019 - 2024. All rights reserved.