2016-03-08 4 views
7

Vor diesem Code:Wie aufgelöst Werte von JavaScript zu dokumentieren versprechen

function asyncFoo() { 
    return new Promise(function (fulfill, reject) { 
    doAsyncStuff(function(err, data) { 
     if(err) reject(new Error(err)); 
     else fulfill(new Bar(data)); 
    }); 
    }); 
} 

Wie kann ich dokumentieren, dass asyncFoo ein Promise zurück, die, wenn eine Instanz von Bar nachgeben erfüllt, und wenn abgelehnt wird eine Instanz ergeben von Error?

/** 
* @return << Here, what do I have to write? >> 
*/ 
function asyncFoo() { ... } 
+0

> ähnlicher Frage zu https://stackoverflow.com/questions/13104411/how- to-specify-resolution-and-rejection-Typ-of-the-Versprechen-in-jsdoc/46733261 # 46733261 – holmberd

Antwort

8

Ich mag angeben, dass es eine Asynchron-Funktion mit @async und geben Sie die erfüllte Rückkehr mit @returns und Fehlern mit @throws

/** 
* @async 
* @returns {Bar} 
* @throws {Error} 
*/ 
function asyncFoo() { ... } 
+1

Sollte eine akzeptierte Antwort sein. Klappt wunderbar. Nur auf diese Weise wird das Ergebnis von der IDE korrekt erkannt, wenn der Rückgabewert in der TypeScript-Datei als Schnittstelle definiert ist (nur für eine reine Autovervollständigung). – Miraage

+0

und dennoch gibt das Fn weder '{Bar} noch '' Error} 'zurück – Mr5o1