如何将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