当前位置: 首页 > 面试题库 >

使用SetTimeout进行javascript睡眠

习旻
2023-03-14
问题内容

我正在尝试以10秒的延迟发送电子邮件。我写了这段代码:

$(document).ready(function() {
    for (i = 0; i < 20; i++) {
        setTimeout("SendEmail(" + i + ")", 5000);
    }
});

function SendEmail(id) {
    $.get("mimesender.php?id=" + id, function(data) {
        var toAppend = "<span>     " + data + "</span>"
        $("#sentTo").append(toAppend);
    });
}

服务器端代码(php)获取ID并从数据库中选择具有指定ID的电子邮件

$query="select email from clienti where id =".$id;

然后发送电子邮件,并发回当前电子邮件

echo email;

但是,这里有些问题。似乎js函数等待5秒钟,然后立即显示所有20个电子邮件地址。

你能告诉我我做错了什么吗?任何“睡眠”的解决方法将不胜感激:)


问题答案:

您应该创建一个在5秒钟后调用自身的函数

var i=0;

function sendEmailNow() {
     SendEmail(i);
     ++i;
   if(i<20) {
        setTimeout(sendEmailNow, 5000);
    }
}


 类似资料:
  • 本文向大家介绍javascript中setTimeout使用指南,包括了javascript中setTimeout使用指南的使用技巧和注意事项,需要的朋友参考一下 javascript中setTimeout使用指南 以上所述就是本文的全部内容了,希望大家能够喜欢。

  • 我想知道如何在ReactJS上使用setTimeout(),因为我正在这样做: 它调用两次函数this.reqMaq()。 如何防止第一次通话?在时间结束后继续打电话? 这是组件: 谢谢你。

  • 问题内容: 有人可以告诉我这为什么起作用: 但这失败了: 这是错误: 问题答案: 这行: 是一个简短的变量声明,右侧表达式为:。是包中的类型常量,其类型为;并且是一种 无类型数值常量 ,其在表达时,将可能的话采取适当的类型。由于具有作为其基础类型,因此可以在不损失精度的情况下将常量转换为常量,从而可以执行常量表达式。 另一行: 第一行是一个简短的变量声明,其中的类型将从右边的表达式中推断出来,这是

  • 问题内容: 据我所知,这两段JavaScript的行为方式相同: 选项A: 选项B: 使用setTimeout和setInterval之间有什么区别? 问题答案: 他们本质上试图做同样的事情,但是这种方法比该方法更加准确,因为要等待1000ms,然后运行该函数,然后设置另一个超时。因此,等待时间实际上超过了1000毫秒(如果函数执行时间较长,则等待时间会更长)。 尽管有人可能会认为将执行完全相同每

  • 问题内容: 考虑以下示例: 是什么导致该执行 立即 ,而不是等待3秒为单位设置,以及只执行警戒 ONCE ,而不是在计划每隔5秒? 感谢您的任何帮助,您可以提供! 石匠 问题答案: 这看起来不像立即调用函数吗? 尝试传递函数(不执行):

  • 本文向大家介绍JavaScript使用setTimeout实现倒计时效果,包括了JavaScript使用setTimeout实现倒计时效果的使用技巧和注意事项,需要的朋友参考一下 为了加强对JavaScript原生代码的编写能力,以及巩固setTimeout()的使用方法,制作了一个倒计时的demo,倒计时在现在的网站中算是一个常见的小功能,如果大家喜欢的话可以留下,就当作一个日常实用的小脚本。