gpt4 book ai didi

javascript - 如何让两个事件在它们之间有延迟地发生

转载 作者:行者123 更新时间:2023-12-02 15:39:38 27 4
gpt4 key购买 nike

因此,我将一些字符串加载到名为 messages 的数组中。我想在没有消息显示的情况下以半秒的时间循环浏览消息。我的代码应该这样做,但出于某种原因它没有这样做。根本不显示任何文字。

这是我的代码:

        function NextElement()
{
var x = messages.shift();
messages.push(x);
return x;
}
function doer()
{
$("p.message").text(NextElement());
}
function doer2()
{
$("p.message").text("");
}
$( document ).ready(function()
{
setInterval( doer,1000);
setTimeout(function() {}, 500);
setInterval( doer2,1000);
});

如果删除此行

       $("p.message").text("");

消息显示,但半秒后不会消失。

我正在查看this page关于超时是如何工作的,也许我误解了。看起来它的工作方式与 Java/C# 中的 thread.sleep() 不同

最佳答案

正如@Jonathan Lonowski 在评论中提到的,两个间隔基本上是同时运行的。

编辑

示例:

func1();
setTimeout(CODE, [DELAY]);
func2();

setTimeout 不会破坏上述代码的同步流程。
无论 [DELAY] 有多长,这两个函数(func1func2)都会流畅执行。
setTimeout 实际上延迟CODE

<小时/>
function NextElement(){
var x = messages.shift();
messages.push(x);
return x;
}
function doer(){
$("p.message").text(NextElement());
setTimeout(doer2, 1000);
}
function doer2(){
$("p.message").text("");
setTimeout(doer, 500);
}

doer();

JSFiddle

关于javascript - 如何让两个事件在它们之间有延迟地发生,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32686885/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com