教育行業(yè)A股IPO第一股(股票代碼 003032)

全國咨詢/投訴熱線:400-618-4000

同步和異步編程執(zhí)行API的方式有什么區(qū)別?

更新時(shí)間:2023年05月19日16時(shí)55分 來源:傳智教育 瀏覽次數(shù):

好口碑IT培訓(xùn)

同步API是指只有當(dāng)前API執(zhí)行完成后,才能繼續(xù)執(zhí)行下一個(gè)API。這就好比到餐館點(diǎn)餐時(shí),一個(gè)指定的服務(wù)員被分配來為你服務(wù),當(dāng)點(diǎn)完餐時(shí),服務(wù)員將訂單送到廚房并在廚房等待廚師制作菜肴,當(dāng)廚師將菜肴烹飪完成后,服務(wù)員將菜肴送到你的面前,至此服務(wù)完成,此時(shí)這個(gè)服務(wù)員才能服務(wù)另外的客人。步模式是指一個(gè)服務(wù)員某一時(shí)間段只能服務(wù)于一個(gè)客人的模式。

異步API是指當(dāng)前API的執(zhí)行不會(huì)阻塞后續(xù)代碼的執(zhí)行。這就好比到餐館點(diǎn)餐時(shí),在點(diǎn)餐后服務(wù)員將你的訂單送到廚房,此時(shí)服務(wù)員沒有在廚房等待廚師烹飪菜肴,而是去服務(wù)了其他客人,當(dāng)廚師將你的菜肴烹飪好后,服務(wù)員再將菜肴送到你的面前。異步模式是指一個(gè)服務(wù)員同時(shí)可以服務(wù)多個(gè)客人的模式。

1.同步API的執(zhí)行方式

同步API的執(zhí)行方式是指代碼從上到下一行一行執(zhí)行,下一行的代碼必須等待上一行代碼執(zhí)行完成后才能執(zhí)行,示例代碼如下。

console.log('before');
cogsole.log('after');

上述代碼中,只有第1個(gè)console.log0方法執(zhí)行完成后,才能執(zhí)行第2個(gè)console.log0方法。同步代碼中每行代碼按照順序依次執(zhí)行。

2.異步API的執(zhí)行方式

異步API的執(zhí)行方式是指代碼在執(zhí)行過程中某行代碼需要耗時(shí),代碼的執(zhí)行不會(huì)等待耗時(shí)操作完成后再去執(zhí)行下一行代碼,而是不等待直接向后執(zhí)行。異步代碼的執(zhí)行結(jié)果需要通過回調(diào)函數(shù)的方式處理示例代碼如下。

console.log('before');
setTimeout(() => {
  consohy.log('1ast');
}, 2000);
console.log('after');

上述代碼使用console.log0方法輸出before,然后開啟一個(gè)定時(shí)器,在2秒之后使用console.log()輸出last,在程序結(jié)尾輸出after。這段代碼的依次打印結(jié)果是before=after-last。這是因?yàn)槎〞r(shí)器為異步APl,程序不需要等待它執(zhí)行完成,而是繼續(xù)向后執(zhí)行代碼輸出after。

0 分享到:
和我們?cè)诰€交談!