我是JavaScript新手,我从各种资源中读到,如果JavaScript函数与Callbacks相结合,那么JavaScript函数就是异步的。在网上严格搜索了10多天后,我无法找到关于JavaScript中的回调如何异步运行的解释。给出了一些AJAX的例子,但它们没有提供明确的答案,任何人都可以解释JavaScript中的回调如何异步运行以获得以下代码吗?
function myFunc(a,b,callback){
var callbackValue = callback();
var add= a+b;
var subt= a-b;
var mult= a*b;
var div= a/b;
...
...
...
...
...
var totalValue= add+callbackValue;
}
function myFunc(a,b,function(){//complex scientific operation which takes 10 secs });
由于我在上面的代码中使用“myFunc”中的回调,这是否意味着当在“myFunc”中调用callback()时,它会异步运行并且程序流继续 var add = a + b; var subt = a-b; ......... ....... 无需等待回调结果();?
答案 0 :(得分:0)
异步 - 不同时发生。
同步意味着页面必须在JavaScript执行时等待。使用异步,页面不必等待执行jaJavaScript
答案 1 :(得分:0)
是和否。如果不使用setTimeout / setInterval,则它会同步运行。
// alert after 5 seconds
function func(f) {
f();
alert('Hello');
}
func(wait5);
但是如果使用setTimeout,它可以在单独的执行上下文中运行。我想谷歌这个,因为它的修辞很有说服力。
// alert immediately, then wait 5 seconds
function func(f) {
setTimeout(f, 0);
alert('Hello');
}
func(wait5);
当然,在这种情况下,wait5将是一个等待5秒的函数。你可以根据需要创建这个函数,只需运行一个while循环直到5秒钟(使用new Date().getTime()
检查)