【发布时间】:2019-10-12 13:59:43
【问题描述】:
我看到人们将 fetch 方法包装在一个 Promise 中。我似乎无法理解这样做的好处? Fetch 本身会返回一个 Promise,您可以从中提取您需要的内容。
let url = 'https://jsonplaceholder.typicode.com/users';
fetch(url)
.then(function(response){
//console.log(response.json());
return response.json();
})
.then(function(data){
console.log(JSON.stringify(data));
})
.catch(function(err){
//console.log(err);
err = 'this is an error';
console.log(err);
})
与此相比
return new Promise((resolve, reject) => {
fetch(url)
.then(res => res.json())
.then(data => resolve(data))
.catch(err => reject(err));
});
【问题讨论】:
-
收益为零。这是人们在使用 Promise 时常犯的错误。 (如果
Promise不是指原生promise,正确的包装方式还是Promise.resolve,而不是构造函数。)
标签: javascript promise fetch-api