91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

JavaScript異步編程怎樣處理超時

小樊
84
2024-10-25 05:58:55
欄目: 編程語言

在 JavaScript 中,可以使用 Promise 和 setTimeout 結合來實現異步操作的超時處理。以下是一個簡單的示例:

function asyncOperation(operation, timeout) {
  return new Promise((resolve, reject) => {
    // 創建一個定時器,用于在指定時間后執行操作
    const timer = setTimeout(() => {
      reject(new Error('Operation timed out'));
    }, timeout);

    // 執行異步操作,并在操作完成后清除定時器
    operation()
      .then((result) => {
        clearTimeout(timer);
        resolve(result);
      })
      .catch((error) => {
        clearTimeout(timer);
        reject(error);
      });
  });
}

// 使用示例
const operation = () => {
  return new Promise((resolve) => {
    console.log('異步操作開始');
    setTimeout(() => {
      console.log('異步操作完成');
      resolve();
    }, 2000);
  });
};

asyncOperation(operation, 1000)
  .then((result) => {
    console.log('操作成功');
  })
  .catch((error) => {
    if (error.message === 'Operation timed out') {
      console.log('操作超時');
    } else {
      console.log('操作失敗');
    }
  });

在這個示例中,我們定義了一個名為 asyncOperation 的函數,它接受兩個參數:一個異步操作函數 operation 和一個超時時間 timeout(以毫秒為單位)。這個函數返回一個新的 Promise,當異步操作在指定時間內完成時,Promise 會被解析;否則,它會被拒絕并返回一個包含超時錯誤的消息。

我們可以通過調用 asyncOperation 函數并傳入異步操作函數和超時時間來執行異步操作并處理超時。在這個示例中,我們模擬了一個耗時 2 秒的異步操作,并設置了 1 秒的超時時間。因此,操作會因為超時而失敗,并在控制臺輸出 “Operation timed out”。

0
黄梅县| 郎溪县| 靖边县| 马龙县| 富裕县| 松溪县| 巴里| 互助| 嘉黎县| 云阳县| 泌阳县| 普兰店市| 固原市| 九江县| 永胜县| 铁岭县| 灌阳县| 安龙县| 阳高县| 嵊泗县| 安远县| 滨州市| 宝丰县| 汝南县| 浦东新区| 原阳县| 土默特右旗| 赣榆县| 兰西县| 乌鲁木齐县| 棋牌| 夏邑县| 平乡县| 兴义市| 长丰县| 张家川| 廊坊市| 江达县| 成安县| 荣昌县| 中西区|