首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用回调的异步JavaScript

使用回调的异步JavaScript
EN

Stack Overflow用户
提问于 2013-08-10 06:10:10
回答 2查看 138关注 0票数 0

我是JavaScript的新手,从各种资源中我了解到,如果JavaScript函数与回调耦合在一起,则它们是异步的。在web上严格搜索10+ days之后,我找不到关于JavaScript中回调是如何异步运行的解释。我们给出了AJAX的一些例子,但它们没有给出一个明确的答案,有人能解释一下JavaScript中的回调是如何针对下面的代码异步运行的吗?

代码语言: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”中调用回调()时,它会异步运行,程序流将继续使用var add= a+b;var subt= a-b;..而不等待回调()的结果;?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-08-10 09:07:53

是也不是。如果您不使用setTimeout/setInterval,那么它将同步运行。

代码语言:javascript
复制
// alert after 5 seconds
function func(f) {
    f();
    alert('Hello');
}

func(wait5);

但是如果使用setTimeout,它可以在单独的执行上下文中运行。我会在谷歌上搜索,因为这是修辞性的解释。

代码语言:javascript
复制
// alert immediately, then wait 5 seconds
function func(f) {
    setTimeout(f, 0);
    alert('Hello');
}

func(wait5);

当然,在这种情况下,wait5将是一个等待5秒的函数。如果您愿意,可以创建这个函数,只需运行一个while循环,直到5秒过去(使用new Date().getTime()检查)

票数 0
EN

Stack Overflow用户

发布于 2013-08-10 06:24:11

异步-不同时发生。

同步意味着在执行JavaScript时,页面必须等待。使用异步时,页面不必等待jaJavaScript的执行。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18159177

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档