资讯专栏INFORMATION COLUMN

setTimeout和setInterval被遗忘的第3个参数

Vultr / 284人阅读

摘要:一起因最近在看阮一峰,惊为天人的发现里面的一个例子原来居然还有第三个参数,调用方法的时候可以作为传参对象。二定义定时器启动时,第三个及以后的参数是作为第一个参数也就是函数的参数传进去的。

一、起因

最近在看阮一峰es6,惊为天人的发现promise里面的一个例子:原来 setTimeout居然还有第三个参数,调用方法的时候可以作为传参对象。

    function timeout(ms) {
      return new Promise((resolve, reject) => {
        setTimeout(resolve, ms, "done");
      });
    }
    
    timeout(100).then((value) => {
      console.log(value);
    });

二、定义

定时器启动时,第三个及以后的参数是作为第一个参数(也就是函数)的参数传进去的。

三、语法糖

我认为第三个及以后的参数可能是setTimeout的语法糖,其实按照第二种写法也是可以的,可能第一种写法会比较吊一点,毕竟很少人会知道setTimeout有第三个参数。

    setTimeout(resolve, ms, "done");
    setTimeout(resolve("done"), ms);

但是在Promise里面resolve只能传一个参数,在其他方法可以传多个参数

    setTimeout(test,1000,1,2,3);

    function test(a ,b, c) {
        console.log(a, b, c) // 输出1,2,3
    }

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/103590.html

相关文章

  • 〔总结〕容易遗忘的JS知识点整理

    摘要:命名函数的赋值表达式另外一个特殊的情况是将命名函数赋值给一个变量。这是由于的命名处理所致,函数名在函数内总是可见的。当需要向回调函数传递参数时,可以创建一个匿名函数,在函数内执行真实的回调函数。 1.hasOwnProperty相关 为了判断一个对象是否包含自定义属性而不是原型链上的属性,我们需要使用继承自 Object.prototype 的 hasOwnProperty方法。has...

    explorer_ddf 评论0 收藏0
  • setTimeoutsetInterval的使用

    摘要:不过两者各有各的应用场景。方法实际上,和的语法相同。这意味着如果函数的主体部分需要秒钟执行完,那么整个函数则要每秒钟才执行一次。不过还是有办法可以终止和函数的执行。 var intervalProcess = setInterval(alert(GOAL!), 3000); 这个变量命名可以在实际代码中采用 这两个方法都可以用来实现在一个固定时间段之后去执行JavaScript。不过...

    noONE 评论0 收藏0
  • process.nextTick() 、setTimeout()、setInterval() 运行机

    摘要:注意如果主逻辑的代码执行时间已经超过了第二个参数设置的时间,那么等运行到该回调函数时,它会忽略掉这个时间,并立即执行。如果某一个进行大量的计算,那么它就会阻塞在当前的回调函数中,等待该计算完成后,再执行下一个的回调函数。 setTimeout() ​ JavaScript是一个单线程的语言,也就是说它同一时间只能执行一段代码,接下来我们通过两个例子说明一下单线程语言和多线程语言的...

    lscho 评论0 收藏0
  • 【拒绝拖延】常见的JavaScript内存泄露原因及解决方案

    摘要:前言内存泄漏指由于疏忽或错误造成程序未能释放已经不再使用的内存。这里就讲一些常见会带来内存泄露的原因。解决方案和都设为。 前言 内存泄漏指由于疏忽或错误造成程序未能释放已经不再使用的内存。内存泄漏并非指内存在物理上的消失,而是应用程序分配某段内存后,由于设计错误,导致在释放该段内存之前就失去了对该段内存的控制,从而造成了内存的浪费。这里就讲一些常见会带来内存泄露的原因。 0. 全局变量...

    tangr206 评论0 收藏0
  • 定时器

    摘要:提供定时执行代码的功能,叫做定时器,主要由和这两个函数来完成。它返回一个整数,表示定时器的编号,以后可以用来取消这个定时器。上面代码中,回调函数不会再执行了,因为两个定时器都被取消了。 JavaScript 提供定时执行代码的功能,叫做定时器(timer),主要由setTimeout()和setInterval()这两个函数来完成。它们向任务队列添加定时任务。 setTimeout()...

    Nino 评论0 收藏0

发表评论

0条评论

Vultr

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<