异步执行的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
永远不会被调用。外部脚本在加载该函数后会调用该函数。我应该在问题中详细说明。是的,我刚刚说到。。。