我是编程新手,想知道为什么在 post 请求上不需要 promise ,但在 get 请求上需要 promise ?
var getAll = function() {
return $http({
method: 'GET',
url: '/api/links'
}).then(function(resp) {
return resp.data;
})
}
var addLink = function(link) {
return $http({
method: 'POST',
url: '/api/links',
data: link
})
//you don't need a promise on a POST!
}
最佳答案
好吧,$http
总是在 GET
和 POST
上返回一个 promise 。在您的情况下,您需要对从 GET
返回的数据执行某些操作,因此您可以正确使用 Promise 的 then()
在HTTP 请求完成。
在您的POST
中,您看起来并不关心响应,因此您只是选择不执行任何操作。您也可以出于多种原因轻松地将 then()
附加到您的 POST
上。
此外,还有 Promise 链,因此 then()
也返回一个 Promise。无论代码调用 getAll()
和 addThis()
,都可以对 Promise 执行某些操作。但是,执行 getAll().then(function(data) { ... })
的操作会将来自 HTTP 响应的数据传递给它,因为 返回 resp.data
你已经在上面了。
在这种情况下,执行 addThis().then(function(data) { ... })
的代码会将整个 HTTP 响应传递给它,因为没有任何东西像getAll()
.
关于javascript - Angular promise - POST 请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32686190/