- setTimeout() を使用する方法:
function createTimeoutPromise(timeout) {
return new Promise((resolve, reject) => {
setTimeout(() => {
resolve("タイムアウト後に解決された値");
}, timeout);
});
}
// 使用例:
const promise = createTimeoutPromise(3000);
promise.then((value) => {
console.log(value); // "タイムアウト後に解決された値"
});
- 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() を使用する場合、他の非同期処理と競合させ、最初に解決または拒否されたプロミスを返します。