请问:类似下面结构的代码有什么优化的空间?刚开始使用 async/await,不知道用法是否正确?!
async function showData(count = 0) {
let data = await getData();
if (data > 0.5) {
if (count < 5) {
return await showData();
} else {
return Promise.reject('无法获取');
}
} else {
return Promise.resolve(data);
}
}
function getData() {
return new Promise((resolve) => {
setTimeout(() => {
resolve(Math.random());
}, 1000);
})
}
async function test() {
try {
let data = await showData();
console.log(data);
} catch (e) {
console.log(e);
}
}
test();
1
DongZhe93 OP 第五行应该是 return await showData(count + 1);
|
2
MinonHeart 2018-07-25 21:11:32 +08:00
在 async 函数中
return 时 await 不必要 return Promise.resolve(data) = return data; return Promise.reject(msg) = throw msg |
3
e8c47a0d 2018-08-08 13:08:20 +08:00
return Promise.reject('无法获取') 可以换成 throw '无法获取'
return Promise.resolve(data); 可以换成 return data |