我有三个函数,我想一个接一个地执行。我的三个函数是 A_rray()
、Counter()
、Main_Function(N,A)
,我有 Main_Function(N ,A)
基于 A_rray()
,一旦该部分被执行,那么我想等待 Counter()
如下-
if (A_rray().length!=0){
Main_Function(500,A_rray());
}
else{console.log('Number = ',A_rray().length)}
Counter();
函数是-
function A_rray(){ D=[1,2];return D;}
function Counter(){console.log('Done!');}
function Main_Function(N,A){
var counter = 0;
var interval = setInterval(function() {
counter++;
if (counter === A.length) {
clearInterval(interval);
}
console.log(counter, 'iteration')
}, N) }
但问题是,Counter()
函数先执行,然后是条件和其他部分,这可能是因为setInterval
。
我尝试了一些写在 Stack Overflow 上的方法,但由于我是初学者,所以这些方法都不起作用。
有没有一种简单的方法来执行第一个基于Array()
的函数Main_Function(N,A)
,然后执行Counter()
高效?
最佳答案
一种更简单的方法是编辑您的 MAIN_FUNCTION
,以便您从那里调用 Counter
。
function MAIN_FUNCTION(N,A) {
var counter = 0;
var interval = setInterval(function() {
counter++;
console.log(counter, 'iteration');
if (counter === A.length) {
clearInterval(interval);
Counter();
}
}, N);
}
然后从执行位中去掉另一个Counter
调用
这将确保 Counter
仅在 interval
的最后一次迭代之后运行
一些注意事项:
- 看到
Counter
只记录日志,您可以简单地将调用替换为日志调用 - 调用函数
Array
会覆盖 javascript 的默认函数,该函数是Array
类的构造函数
关于javascript - 在另一个函数之前执行一个函数(包含 setInterval)的简单方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58356716/