gpt4 book ai didi

javascript - 如何在前一个函数结束后执行函数?

转载 作者:行者123 更新时间:2023-12-03 03:57:30 25 4
gpt4 key购买 nike

伙计们。这是一个计时器。我想运行计时器,当它结束时做其他事情(比如警告),然后再次运行其他分钟数。但我不能总是只执行第二个调用:

$(document).ready(function() {
timer(5,timer(25));

// timer(5);
// timer(25); do not work... only exec de last one

});

function timer(countTo,callback){

var time = 10; /* how long the timer runs for */
var initialOffset = '440';
var i = 1
var interval = setInterval(function() {
$('.circle_animation').css('stroke-dashoffset', initialOffset-(i*(initialOffset/countTo)));
$('h2').text(i);
if (i == countTo) {
clearInterval(interval);
}
i++;
}, 1000);
callback();
}

哪个是最好的解决方案?有一些我不明白的事情...无论如何谢谢!

最佳答案

首先:

timer(5,timer(25));

如果你认为这一行会执行timer(5) ,然后在 timer(5) 的末尾它将执行timer(25) , 你误会了。这实际上是要评估timer(25)立即,并将其返回值 ( undefined ) 作为第二个参数传递给 timer(5,undefined) .

如果您打算将其作为回调传递,则需要传递一个函数。所以你可以这样做:

timer(5,timer.bind(null,25));

但是,就此而言,您甚至不检查 callback 是否在尝试调用它之前就存在,因此您可能会收到引用错误。

关于javascript - 如何在前一个函数结束后执行函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44874913/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com