js實(shí)現(xiàn)異步的幾種方式 怎么讓js函數(shù),一個(gè)執(zhí)行完之后在執(zhí)行另外一個(gè)?
怎么讓js函數(shù),一個(gè)執(zhí)行完之后在執(zhí)行另外一個(gè)?有兩個(gè)函數(shù),函數(shù)F1(){},如果F1中沒(méi)有異步操作,比如沒(méi)有setTimeout,可以直接執(zhí)行F1(){};如果F1中有setTimeout這樣的異步操
怎么讓js函數(shù),一個(gè)執(zhí)行完之后在執(zhí)行另外一個(gè)?
有兩個(gè)函數(shù),函數(shù)F1(){},如果F1中沒(méi)有異步操作,比如沒(méi)有setTimeout,可以直接執(zhí)行F1(){};如果F1中有setTimeout這樣的異步操作,可以順序執(zhí)行。2如果F1中有像setTimeout這樣的異步操作(setTimeout不是異步操作,但還是有延時(shí)的),用1中的方法,在執(zhí)行F2中的代碼時(shí),會(huì)在F1完成之前執(zhí)行,需要判斷。根據(jù)實(shí)際情況,我遇到的是我們必須在ulli中完成click事件才能再次執(zhí)行F2,即在F1]Hello中調(diào)用F2],JS是同步執(zhí)行的,一個(gè)簡(jiǎn)單的例子解釋控制臺(tái).log(i)
對(duì)于(變量i=10i控制臺(tái).log(i)
以上兩個(gè)for循環(huán),第一個(gè)打印1-10,第二次打印10-20,結(jié)果是1-20依次輸出
JS中的代碼是同步執(zhí)行的,只有在Ajax的情況下,才會(huì)引起代碼執(zhí)行順序的改變,因?yàn)锳jax請(qǐng)求時(shí)間的關(guān)系
希望能對(duì)你有所幫助