我是node.js的新手。我一直在看到代碼中只有一個回調方法被調用,但它從來沒有在文件的任何地方定義過。因此,如果沒有定義,那麼對回調方法的調用到底做了什麼?例如回調方法是否需要在node.js中定義?
CollectionDriver.prototype.findAll = function(collectionName, callback) {
this.getCollection(collectionName, function(error, the_collection) {
if(error) callback(error);
else {
the_collection.find().toArray(function(error, results) {
if(error) callback(error);
else callback(null, results);
});
}
});
};
據我所知,基於this.getCollection(collectionName)方法的成功或失敗,回調方法「callback」被適當調用,但是沒有定義可用於回調方法。那麼這個通話如何有用?
我明白,當函數完成時,它調用可以內聯或單獨定義的回調方法。您也提供了適當的定義。但是,如果您看看我的示例,那麼回調方法只是稱爲回調(錯誤)或回調(null,結果),並且沒有可用的定義。因此,我可以不定義回調函數,當我們知道一旦函數完成後它將被調用,那麼明確調用回調函數的用法是什麼。 – 2014-10-01 06:21:57
@AbhishekChauhan - 我不明白你的評論在這裏。當執行'.findAll()'時,回調函數僅在runtme中被調用。在那個時候,它的價值來自傳遞給'.findAll()'的參數。該部分與使用參數'collectionName'的函數沒有區別。也許你不明白函數引用可以傳遞給一個函數,然後接收函數可以調用它。 – jfriend00 2014-10-01 06:33:40
我明白我們可以調用傳遞給另一個方法的方法作爲參數。但我想在這裏指出的是,沒有定義回調方法 - 既不在調用findAll()的地方,也不在定義它的地方(這是代碼本身)。那麼,如果沒有提供定義,那麼對callback()的調用會做什麼? – 2014-10-01 07:04:29