2016-06-01 8 views
4

Titel dieser Frage könnte Bedürfnisse BearbeitungProblem mit bedingt Rückkehr Versprechen (NodeJS)

Hallo, Ich habe eine Methode, die entweder ein Objekt oder ein Versprechen zurück. Die Funktion ist wie folgt:

function getAllTypes() 
{ 
    if(cache_hit) 
    return from_cache; 

    else 
    { 
    // db Query 
    findAllTypes.then(function(result){ 
    return result; 
    } 
    } 
} 

Diese Funktion gibt je nach Fall entweder ein Versprechen oder ein einfaches JS-Objekt zurück. Dies ist eine Dienstprogrammfunktion und wird an vielen verschiedenen Orten verwendet werden. Ich möchte seinen Rückgabetyp konstant halten, d. H. Entweder ein Versprechen oder ein einfaches JS-Objekt (die nicht aufgelöst werden müssen) in beiden Fällen.

Gibt es eine Möglichkeit, dies zu erreichen?

Antwort

1

Wenn Ihre Methode könnte etwas async dann tun davon ausgehen, dass es es tun werde, was bedeutet, dass es immer ein Versprechen zurückkehren werde, Ihnen ein Versprechen aus einem einzigen Wert mit Promise.resolve dh

function getAllTypes() { 
    return cache_hit ? return Promise.resolve(from_cache) : findAllTypes() 
} 
+0

erstellen, das funktioniert . Vielen Dank. :) Promise.resolve ist Standard JS? –

+1

@SohaibFarooqi yep http://www.ecma-international.org/ecma-262/6.0/#sec-promise.resolve –

Verwandte Themen