手册

目录

异步

收藏880

阅读599

更新时间2025-08-07

异步 JavaScript

上一章中使用的例子做了很大地简化。

其目的是演示回调函数的语法:

实例

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

function myCalculator(num1, num2, myCallback) {
  let sum = num1 + num2;
  myCallback(sum);
}

myCalculator(5, 5, myDisplayer);
运行实例 »

点击 "运行实例" 按钮查看在线实例

在上面的例子中,myDisplayer 是函数的名称。

它作为参数传递给 myCalculator()

在现实世界中,回调最常与异步函数一起使用。

一个典型的例子是 JavaScript setTimeout()

等待超时

在使用 JavaScript 函数 setTimeout() 时,可以指定超时时执行的回调函数:

实例

setTimeout(myFunction, 3000);

function myFunction() {
  document.getElementById("demo").innerHTML = "I love You !!";
}
运行实例 »

点击 "运行实例" 按钮查看在线实例

在上面的示例中,myFunction 被用作回调。

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

3000 是超时前的毫秒数,所以 3 秒后会调用 myFunction()

当您将函数作为参数传递时,请记住不要使用括号。

正确:setTimeout(myFunction, 3000);

错误:setTimeout(myFunction(), 3000);

若不将函数的名称作为参数传递给另一个函数,您始终可以传递整个函数:

实例

setTimeout(function() { myFunction("I love You !!!"); }, 3000);

function myFunction(value) {
  document.getElementById("demo").innerHTML = value;
}
运行实例 »

点击 "运行实例" 按钮查看在线实例

在上面的例子中,function(){ myFunction("I love You !!!"); } 用作回调。它是一个完整的函数。完整的函数作为参数被传递给 setTimeout()。

3000 是超时前的毫秒数,所以 3 秒后会调用 myFunction()

等待间隔:

在使用 JavaScript 函数 setInterval() 时,可以指定每个间隔执行的回调函数:

实例

setInterval(myFunction, 1000);

function myFunction() {
  let d = new Date();
  document.getElementById("demo").innerHTML=
  d.getHours() + ":" +
  d.getMinutes() + ":" +
  d.getSeconds();
}
运行实例 »

点击 "运行实例" 按钮查看在线实例

在上面的例子中,myFunction 用作回调。

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

1000 是间隔之间的毫秒数,因此 myFunction() 将每秒调用一次。

等待文件

如果您创建函数来加载外部资源(如脚本或文件),则在内容完全加载之前无法使用这些内容。

这是使用回调的最佳时机。

此例加载一个 HTML 文件 (mycar.html),并在文件完全加载后在网页中显示该 HTML 文件:

等待文件:

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);
运行实例 »

点击 "运行实例" 按钮查看在线实例

在上面的示例中,myDisplayer 用作回调。

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

以下是 mycar.html 的副本:

mycar.html

Nice car

A car is a wheeled, self-powered motor vehicle used for transportation. Most definitions of the term specify that cars are designed to run primarily on roads, to have seating for one to eight people, to typically have four wheels.

(Wikipedia)

相关

视频

RELATED VIDEOS

更多

免费

Web前端开发极速入门
初级 Web前端开发极速入门

219920次学习

收藏

免费

前端入门_HTML5
初级 前端入门_HTML5

616946次学习

收藏

免费

30分钟学会网站布局
初级 30分钟学会网站布局

238440次学习

收藏

免费

CSS视频教程-玉女心经版
初级 CSS视频教程-玉女心经版

393054次学习

收藏

免费

独孤九贱(1)_HTML5视频教程

免费

独孤九贱(6)_jQuery视频教程

免费

独孤九贱(7)_Bootstrap视频教程

免费

独孤九贱(2)_CSS视频教程
初级 独孤九贱(2)_CSS视频教程

229605次学习

收藏

科技资讯

更多

精选课程

更多
前端入门_HTML5
前端入门_HTML5

共29课时

61.7万人学习

CSS视频教程-玉女心经版
CSS视频教程-玉女心经版

共25课时

39.3万人学习

JavaScript极速入门_玉女心经系列
JavaScript极速入门_玉女心经系列

共43课时

70.9万人学习

独孤九贱(1)_HTML5视频教程
独孤九贱(1)_HTML5视频教程

共25课时

61.6万人学习

独孤九贱(2)_CSS视频教程
独孤九贱(2)_CSS视频教程

共22课时

23万人学习

独孤九贱(3)_JavaScript视频教程
独孤九贱(3)_JavaScript视频教程

共28课时

33.9万人学习

独孤九贱(4)_PHP视频教程
独孤九贱(4)_PHP视频教程

共89课时

125万人学习

关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号