回覆列表
  • 1 # secretV

    標題看起來確實有些難懂。

    由於本人在JS這塊程式設計不是很熟悉,所以我在做專案時候經常遇到這個問題,也困擾了我很久。

    關於這個問題,我舉個例子吧。

    專案中經常有很多地方都使用了同一段程式碼,為了方便,我喜歡就把它抽出來寫成一個函式,比如這個funA(),這個函式功能很簡單,就是取某些dom的值,進行加加減減操作,然後返回結果。

    function funA(){

    var i = document.getElementById(...).value;

    var j = document.getElementById(...).value;

    return i + j;

    }

    有了funA(),程式碼量減少了不少。直到有一天,老闆說這個函式要改改,不要去讀dom的值了,而是要從服務端拉取。

    聽起來很簡單,但實際開發的時候我懵了。

    這是因為:

    funA()是同步的,什麼時候呼叫它,它就什麼時候返回對應的值。而新的funA()是非同步的,呼叫它之後,鬼知道什麼時候返回資料給我。

    無數的程式碼呼叫了我的funA()函式,所有呼叫funA()的程式碼都認為這個函式能夠返回想要的數字,我可不想因為funA()去讀服務端,就得改無數個地方。

    還有更多的類似funA()的函式面臨這種改動。即原本是同步的函式,某一天非得改成非同步的。

  • 中秋節和大豐收的關聯?
  • 豬油放時間長了能吃嗎?