js中的setTimeout不起作用

来源:互联网 发布:日本人口老龄化 知乎 编辑:程序博客网 时间:2024/05/17 23:16

今天使用setTimeout的时候遇到了一个小问题,场景是这样的,点击一个按钮,希望先弹出一个层上面显示倒计时数字,然后进行读卡操作。因为读卡操作需要打开设备较为耗时,所以使用了setTimeout函数,但是发现并没什么作用,弹出层并不是立即弹出,而是执行了readCard()后才会弹出层,即便第二个参数设置了更大的时间还是一样不起作用。代码大概如下所示:

function onclickFun(){    //1 弹出层,层上显示倒计时    //2 延时执行readCard读卡操作    setTimeout(readCard(),0);}function readCard(){    //读卡操作}


一开始觉得很诡异,甚至怀疑是不是IE11有问题,后来发现其实是自己用错了,setTimeout的定义和用法如下:



注意:第一个参数是code,所以上面的代码是不正确的,应该传递javascript代码字符串,而不能直接写函数。

setTimeout("readCard()",0);



0 0