Javascript异步执行的顺序

时间:2015-11-06 03:07:32

标签: javascript

我知道有很多类似的问题,但我正在寻找有关特定情况的反馈。

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

<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>

外部脚本设置为在加载后调用'myCallback'。

myCallback执行时是否可以调用obj.render(),或者它是否一直等到render及其所有'子函数被调用后?

换句话说,myCallback是否有可能在执行funcAfuncBfuncC之间的某个时间被调用,或者它会一直等到他们都被处决了?

1 个答案:

答案 0 :(得分:0)

你无法确定asynch何时完成。最有可能是在obj.render()之后因为启动异步中心过程需要一段时间。 同时处理obj.render的代码。 但依赖于这样的代码流似乎是棘手的业务。 让我们假设假设异步代码是因为缓存而立即加载的 - 然后它可能会在代码的其他部分运行之前或运行时运行。