async
函数是 JavaScript 中处理异步操作的一种高级语法糖,它基于 Promise
,但提供了更简洁和易读的语法。以下是我在工作过程中总结的 async
函数相对于 Promise
的一些优势:
1. 串联地执行多个异步操作
async function getArticleList() { const articles = [] let i = 0 while (i++ < 100) { articles.push(await axios.get({'/api/article', params: { id: i }})) } return articles }
|
2. 多个异步操作统一 catch
async function doSomething() { try { const response1 = await fetch(url1); const data1 = await response1.json();
const response2 = await fetch(url2); const data2 = await response2.json();
console.log(data1, data2); } catch (error) { console.error('Error:', error); } }
|
3. 结合 switch 将多个异或关系的异步操作的 then 集中在一处
const mode: ref<'create' | 'update'>;
const handleFormConfirm = async (form) => { switch (mode.value) { case 'create': await createCreature(form); break; case 'update': await updateCreature(form); break; } };
|
以上就是我总结的一些特殊案例,如果使用 Promise,几乎难以达到同样目的同时代码仍简洁易读。大家还能想到哪些?欢迎补充!