SetTimeout直接执行没有延时

今天做页面下拉加载效果,遇到一个坑爹的问题。我在做这个效果的时候用了setTimeout,设置了3秒的延迟时间,但是效果确实直接运行没有延时。这个效果让我很操蛋,最后我在CSDN看到一位前辈对这个问题的答案:setTimeout的第一个参数必须是需要编译的代码或者是一个函数方法,而如果直接传入一行可执行代码,那么抱歉,这里会立即执行,没有延迟效果。 

所以,我修改了下我的代码:

修改前:

修改后:

最后延时终于生效了。

时间: 2024-10-20 09:01:01

SetTimeout直接执行没有延时的相关文章

函数中setTimeout的执行顺序

这里先给出一段代码: function a(){ setTimeout(function(){ console.log("setTimeout") },2000); function oneSecond(){ var now = new Date(); var exitTime = now.getTime() + 1000; while (true) { now = new Date(); if (now.getTime() >= exitTime){ console.log(&

process.nextTick,Promise.then,setTimeout,setImmediate执行顺序

1. 同步代码执行顺序优先级高于异步代码执行顺序优先级: 2. new Promise(fn)中的fn是同步执行: 3. process.nextTick()>Promise.then()>setTimeout>setImmediate 出处:https://www.jb51.net/article/151174.htm 原文地址:https://www.cnblogs.com/mengff/p/10216494.html

JS实现停留几秒sleep,Js中for循环的阻塞机制,setTimeout延迟执行

//第一种,使用while循环 function sleep(delay) { var start = (new Date()).getTime(); while((new Date()).getTime() - start < delay) { continue; } } //或者使用for循环 function sleep(delay) { for(var t = Date.now(); Date.now() - t <= d;); } 这种实现方式是利用一个伪死循环阻塞主线程.因为JS是

每日技术:关于promise,async,setTimeout的执行顺序

前端100问第10题 参考:https://github.com/Advanced-Frontend/Daily-Interview-Question/issues/7 请写出下面代码的运行结果 async function async1() { console.log('async1 start'); await async2(); console.log('async1 end'); } async function async2() { console.log('async2'); } c

js 执行完setTimeout再接着执行函数

var counter = 0; function increase(){ var d = jQuery.Deferred(); var doIncrease = function() { if(counter < 10){ counter++; setTimeout(doIncrease, 1000); } else { d.resolve(); } }; doIncrease(); return d.promise(); }; increase().then(function() { ale

setTimeout() 实现程序每隔一段时间自动执行

定义和用法 setTimeout() 方法用于在指定的毫秒数后调用函数或计算表达式. 语法 setTimeout(code,millisec) 参数 描述 code 必需.要调用的函数后要执行的 JavaScript 代码串. millisec 必需.在执行代码前需等待的毫秒数. 提示和注释 提示:setTimeout() 只执行 code 一次.如果要多次调用,请使用 setInterval() 或者让 code 自身再次调用 setTimeout(). [示例] //每5秒使用Ajax取一次

LINQ to Object——延时执行的Enumerable类方法

LINQ to Object是针对实现了IEnumerable<T>的对象的LINQ.而在System.Linq.Enumerable类中,总共定义了40来个查询运算符----全部用扩展方法来实现,他们被称为标准查询运算符.每个查询运算符的执行行为不同,大致分为立即执行和延时执行.延时执行,顾名思义就是不是立即执行,即不是在查询语句定义的时候执行,而是在处理结果集(如遍历)的时候执行. 常用的延时执行的Enumerable类方法成员,具体如下: 1.Take用于从一个序列的开头返回指定数量的元

关于async/await、promise和setTimeout执行顺序

先来一道关于async/await.promise和setTimeout的执行顺序的题目: 1 async function async1() { 2 console.log('async1 start'); 3 await async2(); 4 console.log('asnyc1 end'); 5 } 6 async function async2() { 7 console.log('async2'); 8 } 9 console.log('script start'); 10 set

JS中的setTimeout和setInterval的区别

学了许久的javascript,发现其中非常常用的两个函数,就是setInterval和setTimeout函数,对这两个函数的理解,有时觉得很模糊,经过多次的试验,终于对它有了比较深入的了解.定义,setInterval()-- 间隔指定的毫秒数不停地执行指定的代码.setTimeout,延迟两秒调用函数,这个定义非常的简单,但是它并不像字面意思上那么的简 很多人都觉得这两个方法差不多,但是,实际上,他们差的很远呢     因为setTimeout(表达式,延时时间)在执行时,是在载入后延迟指