馬鹿のために分かりやすく書いておこうか、
JavaScriptで本当の並列処理は、webWorker作った時だけだ NodeJSでの子プロセスも同様
そして、JavaScriptの言語仕様で「スレッドセーフ」って単語見たことあるか?
ないだろ?
JSはそれらの極一部の方法で並列処理できるがそれらはメッセージ以外ではお互いを一切タッチできない
だから他の言語と違って命令ごとのスレッドセーフの可否なんてものがないんだよ
そこからわかる通り、promiseやら一連の”並列風”な処理は全部シングルスレッド内のただのイベントドリブンだよ

というかお前はこんな基本原理すらわからずJavaScriptわかって気になっていたのか?ん?
他の言語とかやったことある人間ならマルチスレッドが何なのかくらい直感的に理解してるはずだけどな