簡體   English   中英

我應該在自定義函數中使用回調模式嗎? 節點js

[英]shall I use callback pattern in my custom function? node js

例如我有一個必須返回一些值的函數A

    function A(callback){
        //some computation
        var fakeData = 20;
        callback(null,fakeData)
    }
    function B(err,data){
      if(!err){
 console.log(data);
}

    }
A(B);

據我所知,只有節點js中的I / O操作是異步運行的,所以如果我對此正確的話有什么區別

   function A(){

            var fakeData = 20;
            return fakeData;
        }
        function B(data){

     console.log(data);

        }
      var data = A();
      B(data);

我的意思是兩個都將同步運行,對嗎?

回調模式對於許多類型的問題很有用:

  1. 當您的函數使用異步操作並且您希望能夠在異步操作完成時通知調用方,並且可能將最終結果傳遞給調用方。

  2. 當您的函數希望調用者提供一些可以在結果計算中使用的函數時,例如可以傳遞給array.sort(callback)

通常,您將不使用回調模式來傳達同步操作的結果,因為與直接從函數返回結果相比,這會使代碼更加復雜。 因此,如果您在A()中的所有操作都是同步的,則您的第二個代碼選項將更易於編碼和使用。

如果您在談論這兩個函數,那么是的,這兩個是相同的,但這不是使用回調,因為當您有一個在一段時間后或將來會返回結果的過程(如數據庫調用或REST API)時,將使用回調調用或文件讀/寫操作,我們不確定它們何時返回結果。

暫無
暫無

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

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