Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/453.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 返回未定义的setInterval函数_Javascript_Jquery - Fatal编程技术网

Javascript 返回未定义的setInterval函数

Javascript 返回未定义的setInterval函数,javascript,jquery,Javascript,Jquery,我第一次学习JavaScript中的setInterval,并试图在5秒后显示一个值。我的代码如下: <button onclick="myTest()">Try it</button> <script> function myTest() { const ret = myFunction(); alert(ret); } function myFunction() { let i = 0; const interval =

我第一次学习JavaScript中的setInterval,并试图在5秒后显示一个值。我的代码如下:

<button onclick="myTest()">Try it</button>

<script>
function myTest() {
    const ret = myFunction();
    alert(ret);
}

function myFunction() {
    let i = 0;
    const interval = setInterval(function(){ 
        i += 1;
        if (i === 5) {
            clearInterval(interval);
            return i;
        }
    }, 1000);
}
</script>
试试看
函数myTest(){
const ret=myFunction();
警报(ret);
}
函数myFunction(){
设i=0;
const interval=setInterval(函数(){
i+=1;
如果(i==5){
间隔时间;
返回i;
}
}, 1000);
}

我想提醒5,但我得到的是
未定义的
。有人知道为什么会这样吗?提前谢谢

setInterval
调用中,无法从匿名函数返回任何内容。您需要从该函数中写入
控制台
。试试这个:

函数myTest(){
//这个函数现在是多余的-您可以直接调用myFunction()
myFunction();
}
函数myFunction(){
设i=0;
const interval=setInterval(函数(){
i+=1;
如果(i==5){
间隔时间;
console.log(i);//这将在5秒后出现。。。
}
}, 1000);
}

myTest()
setInterval
调用中,无法从匿名函数返回任何内容。您需要从该函数中写入
控制台
。试试这个:

函数myTest(){
//这个函数现在是多余的-您可以直接调用myFunction()
myFunction();
}
函数myFunction(){
设i=0;
const interval=setInterval(函数(){
i+=1;
如果(i==5){
间隔时间;
console.log(i);//这将在5秒后出现。。。
}
}, 1000);
}
myTest()
我将返回窗口(我猜),而不是我的函数

默认情况下,myFunction return未定义,因为您没有编写返回

function myTest() {
    myFunction(function(val){
        alert(val);
    });
}

function myFunction(callback) {
    let i = 0;
    const interval = setInterval(function(){ 
        i += 1;
        if (i === 5) {
            clearInterval(interval);
            if(callback){
                callback(i);
            }
        }
    }, 1000);
}
您可以在回调函数中获取值

我将返回窗口(我猜),而不是我的函数

默认情况下,myFunction return未定义,因为您没有编写返回

function myTest() {
    myFunction(function(val){
        alert(val);
    });
}

function myFunction(callback) {
    let i = 0;
    const interval = setInterval(function(){ 
        i += 1;
        if (i === 5) {
            clearInterval(interval);
            if(callback){
                callback(i);
            }
        }
    }, 1000);
}
您可以在回调函数中获取您的值。

警报(ret)将在5秒结束前出现,因此我的函数将返回未定义。这样试试

<button onclick="myTest()">Try it</button>
<script>
function myTest() {
myFunction();
}
function myFunction() {
var i = 0;
var interval = setInterval(function(){  
   i++;
    if (i === 5) {
    alert(i);
      clearInterval(interval);
    }
  }, 1000);

}
 </script>
试试看
函数myTest(){
myFunction();
}
函数myFunction(){
var i=0;
var interval=setInterval(函数(){
i++;
如果(i==5){
警报(一);
间隔时间;
}
}, 1000);
}
警报(ret)将在5秒结束前出现,因此我的函数将返回未定义。这样试试

<button onclick="myTest()">Try it</button>
<script>
function myTest() {
myFunction();
}
function myFunction() {
var i = 0;
var interval = setInterval(function(){  
   i++;
    if (i === 5) {
    alert(i);
      clearInterval(interval);
    }
  }, 1000);

}
 </script>
试试看
函数myTest(){
myFunction();
}
函数myFunction(){
var i=0;
var interval=setInterval(函数(){
i++;
如果(i==5){
警报(一);
间隔时间;
}
}, 1000);
}

myFunction
实际上不返回任何内容。在
setInterval
调用中,您不能从匿名函数返回任何内容。您需要从该函数中写入
控制台
,实际上不需要声明
ret
interval
,因为
const
myFunction
实际上不返回任何内容。在
setInterval
调用中,您不能从匿名函数返回任何内容。您需要从
控制台
中写入,从功能上讲,不需要将
ret
interval
声明为
const
。好的,是的,成功了!我不知道setInterval函数不会返回。谢谢!这是异步代码的一般规则,不能同步返回值。是的,这很有效!我不知道setInterval函数不会返回。谢谢!这是异步代码的一般规则,不能同步返回值