圍繞Javascript的異步性質仍然包裝我的頭。幫助我理解這一點:我有幾個函數需要在數組中的項目上運行。JavaScript異步循環
我們有備選方案1:
for (f of files){
do_a(f);
do_b(f);
do_c(f);
}
VS選項2:
for (f of files){
do_a(f);
}
for (f of files){
do_b(f);
}
for (f of files){
do_c(f);
}
- 這將是更快?
- 在選項1中,即使do_a仍在工作,do_b函數是否會觸發?
- 在選項2中,即使do_a循環仍在工作,do_b循環會觸發嗎?
Javascript是單線程的 - 意思是當另一個人仍在工作時功能不能觸發,除非另一個人中斷或暫時釋放控制權。如果對元素進行操作的功能不會相互干擾,則選項1會更好。特別是在文件上,緩存未命中可能發揮相當大的作用。 – ASDFGerte
** 1。**我會說選項1,因爲你只循環一次。 ** 2。**是,如果'do_a'是異步的。 ** 3。**是的,如果'do_a'是異步的。 – blex
除非函數本身是異步的,否則這個問題不是關於JavaScript的異步性質,而僅僅是性能。 – Andy