gpt4 book ai didi

Angularjs 从成功/错误和 promise 处理 ajax 有什么区别?

转载 作者:行者123 更新时间:2023-12-04 02:49:59 24 4
gpt4 key购买 nike

我不确定应该在哪里处理我的 ajax 请求的响应。

有两种口味。

  1. 通过来自 $http 的成功/错误回调处理。
  2. 通过 then() 方法处理 promise 结果。

两者的 react 都符合预期。但是,我想在使用每一个的地方都有一个“陷阱”。谷歌没有给我指路。 angular.js 源代码有点……对我来说很神秘。

注意:我的示例 (1) 总是先响应,然后 (2) 再响应。我认为这只是因为本地主机延迟几乎为零,而且它们都是异步方法。

$http({
method: 'POST',
url: 'ping.php',
headers: {'content-type' : 'application/json'}
}).
success(function(data, status, headers, config) {
console.log("Flavour one success");
}).
error(function(data, status, headers, config) {
console.log("Flavour one error");
}).then(function() {
console.log("Flavour two success"); },
function() { console.log("Flavour two error");

});

最佳答案

与基本的成功/错误回调相比,使用 promise 有一些好处。一个好处是您可以按照描述将它们链接起来 here .

Chaining promises Because calling the then method of a promise returns a new derived promise, it is easily possible to create a chain of promises:

promiseB = promiseA.then(function(result) {
return result + 1;
});

// promiseB will be resolved immediately after promiseA is resolved and its value
// will be the result of promiseA incremented by 1`

It is possible to create chains of any length and since a promise can be resolved with another promise (which will defer its resolution further), it is possible to pause/defer resolution of the promises at any point in the chain. This makes it possible to implement powerful APIs like $http's response interceptors.

您还可以使用 $q.all() 组合多个 promise .这在引导依赖于要在继续之前加载的多个资源的应用程序时非常有用。

关于Angularjs 从成功/错误和 promise 处理 ajax 有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17977180/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com