タイムアウト後に解決するプロミスの作成方法


  1. setTimeout() を使用する方法:
function createTimeoutPromise(timeout) {
  return new Promise((resolve, reject) => {
    setTimeout(() => {
      resolve("タイムアウト後に解決された値");
    }, timeout);
  });
}
// 使用例:
const promise = createTimeoutPromise(3000);
promise.then((value) => {
  console.log(value); // "タイムアウト後に解決された値"
});
  1. Promise.race() を使用する方法:
function createTimeoutPromise(timeout) {
  const timeoutPromise = new Promise((resolve, reject) => {
    setTimeout(() => {
      reject(new Error("タイムアウトエラー"));
    }, timeout);
  });
  const otherPromise = new Promise((resolve, reject) => {
    // 他の非同期処理を実行する
    // resolve または reject を呼び出す
  });
  return Promise.race([timeoutPromise, otherPromise]);
}
// 使用例:
const promise = createTimeoutPromise(3000);
promise.then((value) => {
  console.log(value); // 他の非同期処理で解決された値
}).catch((error) => {
  console.error(error); // "タイムアウトエラー"
});

これらは、タイムアウト後にプロミスを解決するための一般的な方法です。setTimeout() を使用する場合、指定した時間が経過した後にプロミスが解決されます。Promise.race() を使用する場合、他の非同期処理と競合させ、最初に解決または拒否されたプロミスを返します。