美文网首页
javascript里的回调函数

javascript里的回调函数

作者: 9b559869875b | 来源:发表于2017-11-16 15:30 被阅读2次

如果一个语句需要一阵子才能返回,而javascript的语句并不会等你

写在前面的函数体里的语句完全执行完了,甚至都经过了一秒的漫长运算返回结果了,才开始执行后面的语句。

这样的时候,就会出现,你后面需要用到前面返回的变量,那个变量还是null的情况。

比如下面这个代码(简书里输入代码用3个锐音符`开始,3个锐音符`结束)

    var port = null;
    window.onload = onloadHandler;

    function setPort() {
      console.log('setPort running')
      //port = 3;
      setTimeout("port = 123;console.log(port);",1000);
    }

    function onloadHandler() {
      console.log('onloadHandler running');
      setPort();
      if (port) {
        console.log('port exist');
      }else{
        console.log('port not yet prepared');
      }
    }

以上代码的输出结果:

onloadHandler running 
setPort running
port not yet prepared

port not yet prepared, 这是因为没有等到setPort()返回结果,我们的函数就开始判断 if (port) 了

如果我们想要保证setPort()返回结果后,才开始判断 if (port) ,该怎么做呢?这就可以借助回调函数了

相关文章

网友评论

      本文标题:javascript里的回调函数

      本文链接:https://www.haomeiwen.com/subject/kkulvxtx.html