マクロタスクタスクタスクタスクキューイベントサイクルEventLoop

5305 ワード

そうであることを知りつつ,またその理由を知っていなければならない.
JavaScript言語の大きな特徴は単一スレッドであり、つまり同じ時間に一つのタスクしか処理できないということです.イベント、ユーザーインタラクション、スクリプト、UIレンダリング、ネットワーク処理などの行為を調整するために、メインスレッドのブロッキングを防止し、Event Loopのソリューションアプリケーションによって発生します.JavaScriptは任務を待つ、任務を実行する、休眠して新しい任務を待つ中で絶えず循環する中で、このような機構はイベント循環とも言われます.
js実行順序
メインスレッドでのタスクの実行が完了したら、タスクのキューの中のタスクが新しいタスクが来たら、それをキューに入れて、先に実行する戦略をとって、複数のsetTimeoutが同時に時間になったら、順次実行します.
ジョブが含まれています
script(全体コード)、setTimeout、set Interval、DOMレンダリング、DOMイベント、Promise、XMLHTTPREQUEstなど
マクロタスク
            ,                。
わずかな任務
            ,              
Promise.then        ,
    Promise           ,
 then              
タスクの実行順序
            、   、             1、2、3、4
コードケース
	setTimeout(() => {
     
		console.log("   ");
		setTimeout(() => {
     
			console.log("timeout timeout");
		}, 0);
		new Promise(resolve => {
     
			console.log("settimeout Promise");
			resolve();
		}).then(() => {
     
			console.log("settimeout then");
		});
	}, 0);
	new Promise(resolve => {
     
		console.log("Promise");
		resolve();
	}).then(() => {
     
		console.log("then");
	});
	console.log("   ");