我正在浏览rxJs,自动完成example。 flatMapLatest
的参数函数返回$.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()
答案 0 :(得分:2)
使用.promise()
方法的一个通常目标是防止某些方法的客户端(调用者)解析Deferred对象:无法控制Promise的状态。
然而,在这种情况下,目的不明确:jqXHR
对象无法成功解析(但可以中止,因此它不是严格意义上的Promise
)。不过,在您的示例中,结果甚至没有使用或返回。
答案 1 :(得分:1)
$ .ajax()返回的jqXHR对象实现了Promise接口,为它们提供了Promise的所有属性,方法和行为。这些方法接受$ .ajax()请求终止时调用的一个或多个函数参数。这允许您在单个请求上分配多个回调,甚至在请求完成后分配回调。