簡體   English   中英

作為對象的回調-如何與JavaScript中的異步編程相關聯

[英]Callbacks as Objects - how it relates to asynchronous programming in JavaScript

我在這里閱讀了回調函數,並了解到JavaScript是一種單線程同步語言。

這意味着,如果要從數據庫收集數據,則必須等待例程完成才能執行更多代碼。 這是真的? 如果用戶按下按鈕以在同一腳本文件中調用其他函數,將會發生什么?

要使其異步,可以使用回調。 這里的異步意味着回調中的一段代碼將在調用之前“等待”事件,但不會創建新線程。

作為使JavaScript回調異步的Object又有什么用呢?

它與等待事件一樣嗎?

的確,使用Javascript,如果要調用數據庫,通常必須等待數據庫響應(即,往返Pluto ),然后代碼才能繼續執行。 這稱為“阻止”調用。

回調允許您執行阻塞調用,但同時您也要說:“阻塞調用結束時執行此代碼,但不要等待它發生。” 因此,您的程序繼續執行。 阻塞調用完成后,您將在回調中指定的代碼(尚未運行)將執行。 這可能幾乎是立即的,也可能是稍后的時間。

使用Javascript,其余代碼將完成執行,然后將執行將由阻塞調用完成觸發的第一個回調,依此類推,直到執行完所有回調為止。 屆時該線程將被關閉。

請注意,只有回調代碼是“等待事件”。

因此,執行順序如下所示:

  1. 執行一些代碼。
  2. 設置回調代碼。
  3. 執行阻止呼叫。
  4. 執行其余代碼。
  5. 等待阻止呼叫返回。
  6. 執行回調代碼。
  7. 停止線程進程。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM