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

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

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

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

好口碑IT培訓

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

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

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

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

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

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

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

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

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

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

0 分享到:
和我們在線交談!