JavaScriptで関数内の処理が終わるまで待つ方法
JavaScriptで関数内の処理が終わるまで待つ場合、以下の方法が考えられます。
1. **コールバック関数を使用する**:
一部の非同期処理(例えば、setTimeoutやXMLHttpRequestなど)では、完了時にコールバック関数が呼ばれます。
function doSomething(callback) {
setTimeout(function() {
console.log('Task Done!');
callback();
}, 1000);
}
doSomething(function() {
console.log('Callback called after task is done.');
});
2. **Promiseを使用する**:
Promiseは、非同期処理の完了や失敗を表現する強力な方法です。
function doSomething() {
return new Promise((resolve, reject) => {
setTimeout(function() {
console.log('Task Done!');
resolve();
}, 1000);
});
}
doSomething().then(() => {
console.log('Promise resolved after task is done.');
});
3. **async/awaitを使用する**:
`async/await`は、非同期処理を同期的に書けるようにするES7の機能です。
Promiseベースの関数の前に`await`キーワードを使用すると、そのPromiseが解決するまで実行が停止します。
async function main() {
await doSomething();
console.log('This will run after doSomething is done.');
}
main();
これらの方法を使用すると、非同期処理の完了を待ってから次のタスクを実行することができます。