typescript 结构赋值-探索 TypeScript setTimeout 句型

2023-08-30 0 6,591 百度已收录

偶然遇到了一个TypeScriptsetTimeout句型问题,但是百度没有结果,于是自己研究了一下

这是正常的结构

setTimeout(function(){
...
},interval)

第一个参数是弹跳函数,第二个参数是间隔时间。 意思是在interval微秒之后,执行bounce函数。 不过,由于JavaScript是单线程函数typescript 结构赋值,可能会有延迟,明天就不讨论这个了。 与 JavaScript 不同,第一个参数不能是字符串。

明天遇到的就是这么几个变种,一开始我也没有看懂。 以下是我自己的理解,如有错误请指正。

首先定义两个函数

function returnandlog(a){
    if(a)    {
        console.log(a);
        return a;
    }else{
        console.log(99999)
        return 99999
    }
}
function a(){
    return returnandlog
}

第一个变体

setTimeout(function(){
         returnandlog
   }, 3000);

等了三秒结束,什么也没有输出。 反弹函数只是放了一个函数名,但函数并没有被执行。 所以实际上什么也没有执行。

第二种变体

setTimeout(returnandlog('aaa'), 3000);

立即执行,报错Callbackmustbeafunction.Received'aaa'。 当第一个参数不是匿名函数时,函数立即执行,返回结果被视为匿名函数。 上面的例子中typescript 结构赋值,returnandlog('aaa')返回的是一个字符串,所以报错Callbackmustbeafunction.Received'aaa'。

第三种变体

setTimeout(returnandlog, 3000);

三秒后输出99999。 这些写法与下面的写法相同。 它只是删除了匿名函数。

setTimeout(function returnandlog(a){
    ...
},interval)

第四种变体

setTimeout(a(), 3000);

等待三秒后,输出99999。 立即执行函数a,函数a内部直接返回returnandlog。 Returnreturnandlog 在 3 秒后被调用。 与第三种变体相同。

收藏 (0) 打赏

感谢您的支持,我会继续努力的!

打开微信/支付宝扫一扫,即可进行扫码打赏哦,分享从这里开始,精彩与您同在
点赞 (0)

悟空资源网 typescript typescript 结构赋值-探索 TypeScript setTimeout 句型 https://www.wkzy.net/game/184508.html

常见问题

相关文章

官方客服团队

为您解决烦忧 - 24小时在线 专业服务