狠狠色丁香婷婷综合尤物/久久精品综合一区二区三区/中国有色金属学报/国产日韩欧美在线观看 - 国产一区二区三区四区五区tv

LOGO OA教程 ERP教程 模切知識交流 PMS教程 CRM教程 開發文檔 其他文檔  
 
網站管理員

10個必備的js async/await 工具函數

freeflydom
2024年1月27日 11:35 本文熱度 639

當談到異步編程時,async/await是JavaScript中常用的功能之一。下面是10個常用的await和async函數示例,以及對它們的代碼用途的解析:


1.異步獲取數據

async function fetchData() {

  const response = await fetch('https://api.example.com/data');

  const data = await response.json();

  return data;

}

該函數使用await關鍵字等待異步請求返回的數據,并將其解析為JSON格式。這樣,我們可以在代碼中以同步的方式處理數據,而無需使用回調函數。


2.異步執行多個任務

async function performTasks() {

  const task1 = doTask1();

  const task2 = doTask2();

  await Promise.all([task1, task2]);

  console.log('Tasks completed');

}

在這個例子中,我們使用await等待多個任務同時完成。Promise.all接收一個包含多個任務的數組,并返回一個新的Promise,直到所有任務都完成才會解析。


3.處理異步錯誤

async function fetchData() {

  try {

    const response = await fetch('https://api.example.com/data');

    const data = await response.json();

    return data;

  } catch (error) {

    console.log('Error:', error);

    throw error;

  }

}

在這個示例中,我們使用try/catch塊來捕獲可能出現的異步錯誤。如果發生錯誤,它將被捕獲并打印出來,然后被重新拋出。


4.順序執行異步任務

async function performTasks() {

  await doTask1();

  await doTask2();

  console.log('All tasks completed');

}

這個函數按照順序執行兩個異步任務,并在兩個任務都完成后打印一條消息。


5.異步循環

async function processItems(items) {

  for (const item of items) {

    await processItem(item);

  }

  console.log('All items processed');

}

在這個例子中,我們使用await在循環中處理每個項目。在處理完所有項目后,將打印一條消息。


6.延遲執行

function delay(ms) {

  return new Promise(resolve => setTimeout(resolve, ms));

}


async function delayedTask() {

  console.log('Task started');

  await delay(2000);

  console.log('Task completed');

}

delay函數返回一個Promise,經過指定的延遲時間后解析。在delayedTask函數中,我們使用await讓任務在經過2秒的延遲后才繼續執行。


7.條件異步執行

async function performTask(condition) {

  if (condition) {

    await doTask1();

  } else {

    await doTask2();

  }

  console.log('Task completed');

}

在這個示例中,我們使用條件語句來決定要執行的異步任務。根據條件的不同,將執行不同的任務,并在任務完成后打印一條消息。


8.并行執行異步任務

async function performTasks() {

  const [result1, result2] = await Promise.all([doTask1(), doTask2()]);

  console.log('Tasks completed:', result1, result2);

}

通過使用Promise.all和解構賦值,我們可以并行執行多個異步任務,并在它們都完成后獲取結果。


9.處理多個并發請求

async function fetchData() {

  const [data1, data2] = await Promise.all([

    fetch('https://api.example.com/data1').then(response => response.json()),

    fetch('https://api.example.com/data2').then(response => response.json())

  ]);

  console.log('Data fetched:', data1, data2);

}

在這個示例中,我們使用Promise.all來并發請求多個數據源,并等待它們的響應。一旦所有數據都被解析為JSON格式,我們就可以對其進行處理。


10.鏈式異步操作

async function performTasks() {

  const result = await doTask1()

    .then(response => doTask2(response))

    .then(result2 => doTask3(result2));

  console.log('Tasks completed:', result);

}

在這個示例中,我們使用.then方法將多個異步任務鏈接在一起。doTask1完成后,它的結果將傳遞給doTask2,然后再將結果傳遞給doTask3。最終的結果將在最后的.then塊中獲取并打印出來。



本文來自博客園,作者:喆星高照,轉載請注明原文鏈接:https://www.cnblogs.com/houxianzhou/p/17921756.html



該文章在 2024/1/27 11:36:15 編輯過
關鍵字查詢
相關文章
正在查詢...
點晴ERP是一款針對中小制造業的專業生產管理軟件系統,系統成熟度和易用性得到了國內大量中小企業的青睞。
點晴PMS碼頭管理系統主要針對港口碼頭集裝箱與散貨日常運作、調度、堆場、車隊、財務費用、相關報表等業務管理,結合碼頭的業務特點,圍繞調度、堆場作業而開發的。集技術的先進性、管理的有效性于一體,是物流碼頭及其他港口類企業的高效ERP管理信息系統。
點晴WMS倉儲管理系統提供了貨物產品管理,銷售管理,采購管理,倉儲管理,倉庫管理,保質期管理,貨位管理,庫位管理,生產管理,WMS管理系統,標簽打印,條形碼,二維碼管理,批號管理軟件。
點晴免費OA是一款軟件和通用服務都免費,不限功能、不限時間、不限用戶的免費OA協同辦公管理系統。
Copyright 2010-2025 ClickSun All Rights Reserved