Asynchronous jQuery';什么是同步AJAX请求工作?

Asynchronous jQuery';什么是同步AJAX请求工作?,asynchronous,jquery,Asynchronous,Jquery,ajax({async:false})是否仍然使用XMLHttpRequest对象 如果是,请求如何同步 函数定义中是否有某种机制允许将XHR发出的异步请求包装在同步包装器中 我这样做是因为我想将异步函数调用包装到同步包装器中 编辑: 我想对依赖项执行此操作。在加载所有外部依赖脚本之前,我不需要再运行任何操作,但是,我不希望同步加载每个文件 基本上,我想要这个: require(['lib1.js','lib2.js']) Library1Function(); Library2Functio

ajax({async:false})是否仍然使用XMLHttpRequest对象

如果是,请求如何同步

函数定义中是否有某种机制允许将XHR发出的异步请求包装在同步包装器中

我这样做是因为我想将异步函数调用包装到同步包装器中

编辑

我想对依赖项执行此操作。在加载所有外部依赖脚本之前,我不需要再运行任何操作,但是,我不希望同步加载每个文件

基本上,我想要这个:

require(['lib1.js','lib2.js'])

Library1Function();
Library2Function();
要同时加载lib1和lib2,请阻塞,直到两个都加载

我知道我可以通过回调来实现这一点,但是如果我包含的文件也以同样的方式包含依赖项,那么回调就不起作用

EDITx2

回调不起作用的原因:

# lib2.js
window.Library2Function = function(input) {
  alert(input);
}

# lib1.js
require('lib2.js', function() {
  window.Library1Function = function() {
    window.Library2Function('Hi there');
  }
});

# main.js
require('lib1.js', function() {
  window.Library1Function();
});
问题是,在main.js中,一旦加载并运行lib1.js,就会发出回调。 问题是,
Library2Function
直到lib2.js加载后才真正定义,这是在lib1.js解析后发生的

ajax({async:false})是否仍然使用
XMLHttpRequest
对象

接受
async
作为其第三个参数。如果为true(默认),则请求是异步的。否则,它是同步的

我这样做是因为我想将异步函数调用包装到同步包装器中


你为什么要这样做?这很可能会导致比“修复”更多的问题。

您能解释一下“同步包装器”是什么意思以及为什么需要它吗?编辑:为什么回调不起作用?您能再澄清一点吗?您的问题似乎是在调用回调后调用了
eval
。首先调用
eval
,使脚本运行(这将阻止
require
中的
require
脚本),然后在完成所有操作后调用回调。问题是它不会阻止require'd脚本中的require,除非require实际上是一个阻止脚本。如果我创建require块,我可以很容易地使这个系统工作,但是我希望能够同时为一个脚本包含多个依赖项。这样,加载时间将更接近于
log(n)
,而不是
n
,因为它只需要分支出树,而不是线性地通过。@Jamie Wong,啊,你是对的。我真的忘了我是如何让我的脚本加载器(使用回调)处理这个问题的。(遗憾的是,我再也无法访问脚本加载器的代码了。)请参见编辑-我可能会接受您的答案并将其转移到另一个问题。