异步执行的Javascript顺序

异步执行的Javascript顺序,javascript,Javascript,我知道有很多类似的问题,但我正在寻找一个特定场景的反馈 假设我有一个包含以下代码的页面: <script> var myCallback = function() { // stuff... } </script> <script async src="https://example.com/file.js?callback=myCallback"></script> <script> var obj = {

我知道有很多类似的问题,但我正在寻找一个特定场景的反馈

假设我有一个包含以下代码的页面:

<script>
  var myCallback = function() {
      // stuff...
  }
</script>

<script async src="https://example.com/file.js?callback=myCallback"></script>

<script>
  var obj = {
    render: function() {
      this.funcA();
      this.funcB();
      this.funcC();
    },

    funcA: function() {
      // stuff
    },

    funcB: function() {
      // stuff
    },

    funcC: function() {
      // stuff
    }
  }

  obj.render();
</script>

var myCallback=函数(){
//东西。。。
}
var obj={
render:function(){
this.funcA();
this.funcB();
this.func();
},
funcA:function(){
//东西
},
funcB:function(){
//东西
},
funcC:function(){
//东西
}
}
obj.render();
外部脚本设置为在加载后调用“myCallback”

是否可以在执行
obj.render()
时调用
myCallback
,或者它会一直等到
render
之后调用它的所有子函数


换句话说,在执行
funcA
funcB
funcC
之间的某个时间调用
myCallback
是否可能,或者它是否会一直等到它们全部执行完之后才调用?

您无法真正判断异步何时完成。最可能是在obj.render()之后,因为启动异步过程需要一段时间。 同时处理obj.render的代码。 但依赖这样的代码流似乎是件棘手的事情。
让我们假设异步代码是立即加载的,因为它是缓存的,然后它可能会在代码的其他部分运行之前或运行时运行。

是时候了解事件循环了,这就是我要问的。我认为只要调用render,那么它的所有子函数都将添加到事件循环中,因此当脚本返回时,myCallback将放在它们之后。是这样吗?在您发布的代码中,
myCallback
永远不会被调用。外部脚本在加载该函数后会调用该函数。我应该在问题中详细说明。是的,我刚刚说到。。。