如何將http.put中的響應對象作爲TestFunction的返回值返回給控制器? 來自http.get的響應打印成功,但putResponse未定義。在調試期間,我可以看到http.put更新服務器上的數據。來自嵌套http.put的返回值
testFunction: function (url, data) {
var etag;
var putResponse;
$http.get(url).then(function successCallback(response) {
if (response.data != null) {
etag = response.headers(['etag']);
$http.put(url, data, { headers: { 'If-Match': etag } }).then(function successCallback(response) {
putResponse = response;
}, function errorCallback(response) {
// handle error
});
}
else {
// handle error
}
}, function errorCallback(response) {
// handle error
});
console.log(putResponse);
}
感謝,testFunction是現在好了,對於putResponse控制檯輸出是OK了。我無法返回putResponse與 testFunction(url,data).then(函數(響應){/ *在這裏你有響應定義* /})...只有來自get的響應被顯示? – playerone
是的,你是對的我已經更新了我的答案。通過這種方式,get中的if還必須返回承諾,否則您將會出現錯誤。 – koox00
是的,這將會訣竅!響應已成功返回給調用者。 總結:首先你必須返回putResponse,然後返回承諾,並且必須處理錯誤。 – playerone