我有这样的获取请求。
fetch(deafaultUrl + '/v1/users/',
{
headers: {
'Content-Type': 'application/json'
},
method: "POST",
body: JSON.stringify(userInfoParams)
})
.then(function(response) {
console.log(response);
console.log(response.json());
// not working never go into this function
response.json().then(function(value) {
console.log('access promise');
console.log(value); // "Success"
});
if (response.status !== 200 && response.status !== 201) {
throw new Error("Bad response from server");
}
})
.then(function(json){
console.log("succeed json re");
console.log(json);
dispatch(update_user(json));
})
所以当我安慰这个console.log(response.json());
我得到了这个
但看起来Promise功能似乎没有锻炼。
那么如何在[[PromiseValue]]中获取错误对象?
谢谢!
答案 0 :(得分:2)
要从承诺中获取错误,您可以这样做:
File '../include/myclass.h'
Lines executed:11.05% of 173
Creating 'myclass.h.gcov'
OR
要获得承诺错误,您还可以使用.catch()块
promise.then(function(data) {
}, function(error) {...}
永远不要去这个部分,因为服务器已经发送了响应
.then(){...}
.catch(){..}
您可以这样编写代码:
.then(function(response) {
console.log(response);
console.log(response.json());
// not working never go into this function
response.json().then(function(value) {
console.log('access promise');
console.log(value); // "Success"
});
答案 1 :(得分:1)
以下是then(...)
您应该像这样使用它:
p.then(function(value) {
// fulfillment
}, function(reason) {
// rejection
});
然后您的代码将如下所示
fetch(deafaultUrl + '/v1/users/', {
headers: {
'Content-Type': 'application/json'
},
method: "POST",
body: JSON.stringify(userInfoParams)
})
.then(function(response) {
//Land here if request is successful
console.log(response);
if (response.status !== 200 && response.status !== 201) {
throw new Error("Bad response from server");
}
}, function(error){
//Land here if request has an error
console.log(error);
});
答案 2 :(得分:1)
我找到response.json()
只能读取console.log(response.json());
只能读取一次的解决方案。