簡體   English   中英

如何通過回調函數向主函數發送返回值

[英]How to send a return form a callback function to the main function

我正在嘗試鍛煉這個提琴琴http://jsfiddle.net/jdsans/38GFS/ ,但是無法將回調函數的返回值發送到主函數。 回調函數包含的最終返回值恰好是我想要的,但沒有返回。

當我使用document.write()函數打印返回值時,我得到了想要打印的確切值,但是正如我之前所說,它不會被返回。

請任何人使用這個小提琴向我展示一個有效的示例。 我在小提琴中添加了更多詳細信息作為注釋,以便您理解我時沒有任何問題。

看起來您正在嘗試讓一個異步回調返回一個值(到“同步”函數調用)。 這就像試圖在干燥的陸地上划船一樣。 范式不適合。

“返回值”的概念僅存在於同步模型中。 一個函數調用另一個函數的地方,可以操縱和返回值。 但是,您要返回的值存在於函數回調中。 這意味着您的整個執行線程將在回調函數之前執行,包括保存返回值的部分。

您需要異步思考。 不要返回值,使用它們來調用執行必要工作的其他函數。

我會嘗試說明。 假設我有代碼:

  1. 做一點事
  2. 使用返回值的回調調用異步函數
  3. 使用返回值在屏幕上打印

異步的想法是在調用回調之前先執行1-3。 這就是為什么它被稱為回調 因此3將在我們獲得該值之前執行。 那沒有道理。 相反,您需要更改代碼以執行:

  1. 做一點事
  2. 調用帶有回調的asynch函數,該回調使用一個值並從上方執行3。

暫無
暫無

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

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