异步

与其他函数并行运行的函数称为异步(setTimeout)

例:

function myDisplayer(some) {
  document.getElementById("demo").innerHTML = some;
}

function getFile(myCallback) {
  let req = new XMLHttpRequest();
  req.open('GET', "mycar.html");
  req.onload = function() {
    if (req.status == 200) {
      myCallback(this.responseText);
    } else {
      myCallback("Error: " + req.status);
    }
  }
  req.send();
}

getFile(myDisplayer);

先执行getFile(myDisplayer)函数,进入到getFile函数中,执行到if/else中的myCallback时,执行myDisplayer 函数

在上面的示例中,myDisplayer 用作回调。函数(函数名)作为参数传递给 getFile()

setTimeout(myFunction(),3000);
function myFunction(){
  document.getElementById("demo").innerHTML="加油~"  
}

函数(函数名)作为参数传递给 setTimeout()

当函数作为参数进行传递时,不要使用括号。

若不将函数的名称作为参数传递给里一个函数,则始终可以传递整个函数。

 

posted @ 2022-10-10 09:32  孙凯a  阅读(14)  评论(0编辑  收藏  举报