Reactjs 从REST响应获取纯文本

Reactjs 从REST响应获取纯文本,reactjs,rest,promise,fetch,Reactjs,Rest,Promise,Fetch,我使用fetch从REST服务获取数据。一旦响应到达,我希望获得错误消息(如果有),并将其显示给用户(用户主要是我) response.text()部分很重要:我的后端发送一个javax.rs响应,其中字符串作为实体,例如“Error”。这里,我想读它,但是response.text()只返回一个Promise对象,在解析时只返回更多的Promise对象 我还尝试使用{“msg”:“[error]”},然后在这里将其解析为reponse.json().msg,但这也不起作用。 //成功测试用例

我使用fetch从REST服务获取数据。一旦响应到达,我希望获得错误消息(如果有),并将其显示给用户(用户主要是我)

response.text()
部分很重要:我的后端发送一个javax.rs响应,其中字符串作为实体,例如“Error”。这里,我想读它,但是response.text()只返回一个Promise对象,在解析时只返回更多的Promise对象

我还尝试使用
{“msg”:“[error]”}
,然后在这里将其解析为
reponse.json().msg
,但这也不起作用。

//成功测试用例
取回(“https://jsonplaceholder.typicode.com/posts/1)然后(响应=>{
如果(!response.ok){
如果(response.status==404){
返回{
文本:“未找到服务器!”,
状态:“危险”
};
}
返回response.text().then(text=>{
返回{
文本:文本,
状态:“危险”
};
})
}
返回{
文字:“成功!”,
状态:“成功”
};
})。然后(resp=>{
控制台日志(“结果:”,resp);
})
//故障测试用例404
取回(“https://jsonplaceholder.typicode.com/posts/Not_Exist)然后(响应=>{
如果(!response.ok){
如果(response.status==404){
返回{
文本:“未找到服务器!”,
状态:“危险”
};
}
返回response.text().then(text=>{
返回{
文本:文本,
状态:“危险”
};
})
}
返回{
文字:“成功!”,
状态:“成功”
};
})。然后(resp=>{
控制台日志(“结果:”,resp);
})
//对于测试404以外的错误,我在代码中更改了404错误,因为我无法从占位符api获取其他HTTP错误
取回(“https://jsonplaceholder.typicode.com/posts/Not_Exist)然后(响应=>{
如果(!response.ok){
如果(response.status==999){
返回{
文本:“未找到服务器!”,
状态:“危险”
};
}
返回response.text().then(text=>{
返回{
文本:文本,
状态:“危险”
};
})
}
返回{
文字:“成功!”,
状态:“成功”
};
})。然后(resp=>{
控制台日志(“结果:”,resp);

})
遗憾的是,这对我来说不太管用;看来then()只将数组返回给下一个then(),而不使用函数的返回。因此,即使操作在内部失败,我总是得到“Success!”。@Hathics糟糕的是,我忘记添加
return
。我编辑了答案,现在查看测试用例。快乐编码;)
fetch(address, attributes).then(response => {
    if (!response.ok) {
        if (response.status === 404) {
            return {
                text: "Server not found!",
                status: "danger"
            };
        }
        return {
            text: response.text(),
            status: "danger"
        };
    }
    return {
        text: "Success!",
        status: "success"
    };
}