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

发布时间:2019-08-10 发布网站:脚本宝典
脚本宝典收集整理的这篇文章主要介绍了setTimeout和setInterval被遗忘的第3个参数脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。

一、起因

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

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

二、定义

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

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

三、语法糖

我认为第三个及以后的参数可能是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
    }

脚本宝典总结

以上是脚本宝典为你收集整理的setTimeout和setInterval被遗忘的第3个参数全部内容,希望文章能够帮你解决setTimeout和setInterval被遗忘的第3个参数所遇到的问题。

如果觉得脚本宝典网站内容还不错,欢迎将脚本宝典推荐好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。