2017-08-10 4 views
12

私はPromiseを返す関数fを持っています。 Promiseresolve({name: String, data: Object})またはreject(Error)のいずれかが返されました。VSCode:複雑なオブジェクトで解決する約束を文書化するには?

VSCodeに(an issue in JSDocで述べたように)私は、次の構文を試してみたが、それは動作しません:

/** 
* @promise fPromise 
* @reject {Error} 
* @fulfill {Object} project 
* @fulfill {Object} project.data 
* @fulfill {String} project.name 
* @returns fPromise 
*/ 

答えて

5

私はあなたの最善の策は、カスタムオブジェクトにあなたのfulfill応答をラップすることだと思う:

/** 
* @promise fPromise 
* @reject {Error} 
* @fulfill {Project} 
* @returns {Promise.<Project>} 
*/ 
function renderResults(data) { 
    return new Promise((resolve, reject) => { 
     resolve(new Project()) 
    }) 
} 

renderResults() 

function Project() { 
    this.data = "data"; 
    this.name = "project phoenix" 
    this.location = { 
     city: 'seattle', 
     state: 'wa' 
    } 
} 

これは、このようにVSのコードで表示されます:、私の場合は

enter image description here

0

はできるだけ明確にするために、なぜ上のオブジェクトの性質を入れません説明のための1行?それはそのことの説明であると考えられています。

/** 
* @promise fPromise 
* @fulfill {Object} A project object with the format {name: String, data: Object} 
* @reject {Error} 
* @returns fPromise 
*/ 

それとも、あなたはGoogle Style Guideに似て動的に生成されたオブジェクトキーを処理する場合:キーが何であるか、あなたのコメントを読んで、誰もが返されたオブジェクトがどのように見えるかを理解することができます

/** 
* @promise fPromise 
* @fulfill {Object.<String, Object>} 
* @reject {Error} 
* @returns fPromise 
*/ 

、そしてどのタイプの値が各キーになければならないかを示します。

が指定されていない限り、3つの可能性のいずれかを返すと言います。そして、あなたの元のフォーマットは、約束が成就する可能性のある結果を少し説明するものだと思います。

+0

結果を満たされた約束の中には、10個以上の静的キーが含まれることがあるので、それらを1行に記述することは不便です。 – lz96

関連する問題