- コールバックを使用する方法:
function someAsyncOperation(callback) {
// 非同期な処理
setTimeout(() => {
callback();
}, 1000);
}
function waitForEventLoop(callback) {
// イベントループの完了を待つ
setImmediate(callback);
}
someAsyncOperation(() => {
waitForEventLoop(() => {
console.log('イベントループが完了しました。');
});
});
- Promiseを使用する方法:
function someAsyncOperation() {
return new Promise((resolve, reject) => {
// 非同期な処理
setTimeout(() => {
resolve();
}, 1000);
});
}
function waitForEventLoop() {
return new Promise((resolve, reject) => {
setImmediate(resolve);
});
}
someAsyncOperation()
.then(() => {
return waitForEventLoop();
})
.then(() => {
console.log('イベントループが完了しました。');
});
- async/awaitを使用する方法:
function someAsyncOperation() {
return new Promise((resolve, reject) => {
// 非同期な処理
setTimeout(() => {
resolve();
}, 1000);
});
}
function waitForEventLoop() {
return new Promise((resolve, reject) => {
setImmediate(resolve);
});
}
async function run() {
await someAsyncOperation();
await waitForEventLoop();
console.log('イベントループが完了しました。');
}
run();
これらの方法は、非同期処理が完了した後にイベントループが完了するまで待つためのいくつかの一般的な手法です。選択する方法は、使用しているコードや状況によって異なる場合があります。