$.ajax().promise,它是什么return?

$.ajax().promise, what does it return?

我正在检查 rxJs,自动完成 exampleflatMapLatest return 的参数函数是 $.ajax().promise。这是什么意思?

我遇到过使用 $.ajax.done, then, fail 的代码。但是 promise 的作用是什么 return?

代码块是,

$.ajax({
      url: 'http://en.wikipedia.org/w/api.php',
      dataType: 'jsonp',
      data: {
        action: 'opensearch',
        format: 'json',
        search: global.encodeURI(term)
      }
    }).promise()

$.ajax() 返回的 jqXHR 对象实现了 Promise 接口,为它们提供了 Promise 的所有属性、方法和行为。这些方法采用一个或多个在 $.ajax() 请求终止时调用的函数参数。这允许您在单个请求上分配多个回调,甚至可以在请求完成后分配回调。

http://api.jquery.com/category/deferred-object/

使用 .promise() 方法的一个通常目标是防止某些方法的客户端(调用者)解析 Deferred 对象:无法控制 Promise 的状态。

然而,在这种情况下,目的充其量是不清楚的:jqXHR 对象无法成功解析(但是它可以中止,因此严格来说它不是 Promise)。不过,在您的示例中,甚至没有使用或返回结果。