$ .ajax()。承诺,它返回什么?

时间:2015-07-24 17:30:02

标签: jquery ajax promise rxjs

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

我遇到过使用$.ajax.done, then, fail的代码。但是承诺函数会返回什么?

代码块是,

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

2 个答案:

答案 0 :(得分:2)

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

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

答案 1 :(得分:1)

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

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