异步 JavaScript
“我待会儿就完成!”
正在运行的函数 平行线 与其他函数一起调用异步
一个很好的例子是 JavaScript setTimeout()
异步 JavaScript
上一章中使用的例子非常简单。
这些示例的目的是演示回调函数的语法:
例子
函数 myDisplayer (某物) {
document.getElementById("demo").innerHTML = 某物;
}
函数 myCalculator(num1, num2, myCallback) {
让 sum = num1 + num2;
我的回调(总和);
}
我的计算器(5,5,我的播放器);
亲自尝试 »
在上面的例子中, myDisplayer
是函数的名称。
它传递给 myCalculator()
作为一个论据。
在现实世界中,回调最常与异步函数一起使用。
一个典型的例子是 JavaScript setTimeout()
.
等待超时
使用 JavaScript 函数时 setTimeout()
,可以指定超时时执行的回调函数:
例子
设置超时(myFunction,3000);
函数 myFunction() {
document.getElementById("demo").innerHTML = "我爱你!!";
}
亲自尝试 »
在上面的例子中, myFunction
用作回调。
myFunction
传递给setTimeout()
作为一个论据。
3000 是超时前的毫秒数,因此 myFunction()
将在3秒后调用。
笔记
当将函数作为参数传递时,请记住不要使用括号。
右:setTimeout(myFunction,3000);
错误的: 设置超时(myFunction(),3000);
您不必将函数名称作为参数传递给另一个函数,而是可以传递整个函数:
例子
setTimeout(function() { myFunction("我爱你!!!"); }, 3000);
函数 myFunction(值){
document.getElementById("demo").innerHTML = 值;
}
亲自尝试 »
在上面的例子中, function(){ myFunction("I love You !!!"); }
用作回调。它是一个完整函数。完整函数作为参数传递给 setTimeout()。
3000 是超时前的毫秒数,因此 myFunction()
将在3秒后调用。
等待间隔:
使用 JavaScript 函数时 setInterval()
,可以指定每个间隔执行的回调函数:
例子
设置间隔(myFunction,1000);
函数 myFunction() {
让 d = 新日期();
document.getElementById("演示").innerHTML=
d.获取小时数() + “:” +
d.获取分钟() + “:” +
d.获取秒数();
}
亲自尝试 »
在上面的例子中, myFunction
用作回调。
myFunction
传递给setInterval()
作为一个论据。
1000 是间隔之间的毫秒数,因此 myFunction()
将每秒被调用一次。
回调替代方案
通过异步编程,JavaScript 程序可以启动长时间运行的任务,并继续并行运行其他任务。
但是,异步程序很难编写,也很难调试。
因此,大多数现代异步 JavaScript 方法都不使用回调。相反,在 JavaScript 中,异步编程是通过以下方式解决的: 承诺 反而。
笔记
您将在本教程的下一章中了解承诺。