如果不是"async/await"而是使用 "then and catch",这段代码会是什么样子?



React应用程序中有这样一个方法:

fetchData = async () => {
try {
const response = await fetch(`https://........`);
const data = (await response.json()).group;
this.setState({
data: data,
car: Object.keys(data)[0] 
},this.filter);
} catch(err) {
console.log("404 Not Found");
}
};

如何在没有async/await语法的情况下编写此部分,并使用then和catch?

就是这样!

fetchData = () => {
fetch("YOUR_URL")
.then(response => response.json())
.then(json => json.group)
.then(data => {
this.setState({
data,
car: Object.keys(data)[0] 
},this.filter);
})
.catch(err => {
console.log("404 Not Found");
});
}

它只是-

fetchData = () => {
fetch(url)
.then(res => res.json())
.then(data => {
this.setState({data: data.group, car: Object.keys(data.group)[0]})
})
.catch(err => console.log(err));
};

如果fetch返回Promise,则可以:

fetchData = () => {
fetch(url)
.then(res => ... )
.catch(err => ...)
};
fetchData = () => {
return fetch(`https://........`)
.then(response => {
const data = response.json().group;
this.setState({
data: data,
car: Object.keys(data)[0] 
},this.filter);
}).catch(err => {
console.log("404 Not Found");
});
};

response.json((不会返回Promise,所以您不需要等待

最新更新