-
Promiseを使用する方法:
function asyncFunction1() { return new Promise((resolve, reject) => { // 非同期の処理 setTimeout(() => { console.log("関数1の処理"); resolve(); }, 1000); }); } function asyncFunction2() { return new Promise((resolve, reject) => { // 非同期の処理 setTimeout(() => { console.log("関数2の処理"); resolve(); }, 2000); }); } Promise.all([asyncFunction1(), asyncFunction2()]) .then(() => { console.log("両方の関数が完了しました"); }) .catch((error) => { console.error("エラーが発生しました", error); });
-
async/awaitを使用する方法:
async function asyncFunction1() { return new Promise((resolve, reject) => { // 非同期の処理 setTimeout(() => { console.log("関数1の処理"); resolve(); }, 1000); }); } async function asyncFunction2() { return new Promise((resolve, reject) => { // 非同期の処理 setTimeout(() => { console.log("関数2の処理"); resolve(); }, 2000); }); } async function executeFunctions() { try { await Promise.all([asyncFunction1(), asyncFunction2()]); console.log("両方の関数が完了しました"); } catch (error) { console.error("エラーが発生しました", error); } } executeFunctions();
-
Web Workersを使用する方法:
// worker.jsファイルに下記のコードを保存します self.onmessage = function () { // 非同期の処理 setTimeout(() => { console.log("関数1の処理"); self.postMessage("関数1の処理完了"); }, 1000); // 非同期の処理 setTimeout(() => { console.log("関数2の処理"); self.postMessage("関数2の処理完了"); }, 2000); }; // メインスクリプト内での使用例 var worker = new Worker("worker.js"); worker.onmessage = function (event) { console.log(event.data); // 必要な処理を実行 }; worker.postMessage();
これらの方法を使用すると、JavaScriptで2つの関数を同時に実行することができます。それぞれの方法には異なる利点と制約がありますので、使用する環境やニーズに合わせて適切な方法を選択してください。