2013-06-11 9 views
5

Für synchrone Getter-Funktionen, die Namenskonvention ist wohldefiniert:Naming Convention für asynchrone Getter

var getFerby = function(){ 
    .. 
    return ferby; 
}; 

Wenn jedoch die Ferby Ich mag nicht lokal ist (synchron) verfügbar ist, eine gängige Methode zu handhaben, dass Situation mit einem Rückruf:

/** 
* Asynchronously gets a ferby and passes it to the callback. 
* 
*  Once the ferby is retrieved, these rules MUST be followed: 
*  1) Don't feed it after midnight. 
*  2) Don't give it water. 
*  3) Don't let it near bright light. 
* 
* @param {ferbyCallback} callback - The callback function that expects a ferby. 
*/ 
var fooFerby = function(callback){ 
    getFerbyLoader().load(function(ferby){ 
     callback(ferby); 
    }); 
}; 

/** 
* The callback for the fooFerby function. 
* 
* @callback ferbyCallback 
* @param ferby The ferby 
*/ 

Was ist eine gute Namenskonvention für fooFerby so, dass ich mit Namen weiß, dass es einen Rückruf erwartet?

+0

ich mag getFerbyCB, _getFerby, cbGetFerby oder getFerbyAsync ... – dandavis

+0

@dandavis Danke für die Vorschläge. Persönlich mag ich die Präfixe, also muss man nur auf die Vorderseite des Namens schauen, um das allgemeine Gefühl für die Funktion zu bekommen, also wären "_getFerby" und "cbGetFerby" Kandidaten dafür. Betrachtet man [synonyms for get] (http://thesaurus.com/browse/get), sind einige weitere Kandidaten "acquireFerbie", "grabFerby", "requireFerbie", "procureFerbie" oder (mein persönlicher Favorit) "fetchFerby" . Ich habe auf eine semi-standardisierte Namenskonvention gehofft. – Briguy37

Antwort

1

.NET verwendet BeginDoAction. Ich mag den gleichen Ansatz in JavaScript. In Ihrem Fall wäre die Funktion beginGetFerby.

NodeJs akzeptiert die Konvention, dass die meisten Methoden asynchron sind, und die synchronen Methoden haben ein "Sync" -Suffix, z. doActionSync. Sie könnten das Gegenteil tun und ein "Async" Suffix haben, so dass Ihre Funktion wäre getFerbyAsync. Ich mag diesen Ansatz auch.

3

Ich verwende das Präfix "fetch" anstelle von "get" für asynchrone Getter.

Die Idee ist, dass, wenn es nicht lokal verfügbar ist, müssen Sie es holen.