如何在JsDoc中记录返回的数据
How to document returned data in JsDoc
如何记录向服务器请求返回的JSON结果?
例子/**
* Gets a user's data
* @returns {jQuery}
*/
function getUserData(userId){
return $.get('/usr/' + userId);
}
在上面的示例中,返回的数据将是JSON对象,例如
{
"name" : "Bob",
"status" : 2
}
/**
* Gets a user's data request
* @return {jQuery.jqXHR}
*/
function getUserData(userId){
return $.getJSON('/usr/' + userId);
}
/*
* Handles the result of a user data request.
* @param {Object} data The JSON object, already converted to an Object.
*/
function doSomethingWithUserData(data) {
console.log('do something with user data:', data);
}
getUserData(userId).done(handleUserData);
正如Felix指出的,返回值不是JSON,它甚至不是Object。
引用JQuery的类型文档:
从jQuery 1.5开始,$.ajax()方法返回jqXHR对象,它是XMLHTTPRequest对象的超集。有关更多信息,请参阅$的jqXHR部分。ajax条目
由于$.get
和$.getJSON
都是$.ajax
的简写,所以同样适用。
在这个例子中,我使用的是promise和handler。我从处理程序中创建了一个函数,这样可以更清楚地记录它,但这通常是通过匿名函数完成的。
我还将$.get
转换为$.getJSON
,这将为您执行JSON.parse
调用(将回复从字符串转换为对象)。$.get
的处理程序将使用@param {string}
。
OP在评论中询问如何使用自定义数据处理此问题,以便未来的开发人员知道调用中的预期内容。
现在我们已经有了数据,让我们来看看记录它。
根据复杂程度和是否需要初始化,有3种很好的文档解决方案。
最简单的方法是使用@property创建一个@typedef来描述属性,这不需要额外的代码,并且纯粹是文档。goog.provide('UserData');
/*
* UserData (in the style of Closure's JSDocs)
* @typedef {{
* name: {string},
* title: {string}
* }}
*/
UserData;
或
/*
* UserData (in the style of useJSDocs)
* @typedef {Object}
* @property {string} name
* @property {string} title
*/
var UserData;
在使用:/*
* Handles the result of a user data request.
* @param {UserData} data The JSON object, already converted to an Object,
* cast to UserData
*/
function doSomethingWithUserData(data) {
console.log('do something with user data:', data);
}
和@interface @record,它们很相似,可能对你更有用。
最后是一个直接的类,在那里你可以let user = new UserData(jsonUser)
,如果你能收集到多行默认设置/初始化并将其放在类中,这就是我建议的方式。
相关文章:
- AJAX调用并在Node中获取返回数据
- 角度服务未返回数据
- 统计ajax返回数据中的html元素
- 有没有更好的方法可以测量从Ajax调用返回数据所需的总时间
- Imgur API图像搜索未返回数据
- javascript对象显示为null,但object.properties返回数据
- 如何从ajax调用JQuery返回数据
- 试图从嵌套的回调函数返回数据
- NodeJS FS 不从多个文件返回数据
- ajax函数未在C#中返回数据
- 如何在公共js模块中从web服务返回数据
- 将字符串与 JSON 对象组合以返回数据
- 嵌套异步函数未及时返回数据的问题
- NodeJS JSONStream 以一个长字符串的形式返回数据
- 如何使用 HTML 图像请求将数据发送到服务器,或返回数据作为响应
- 从 Angular 模态服务中的模态主体模板返回数据
- jQuery 每个循环返回数据两次
- $.getJSON 在返回数据后不会运行函数
- 如何访问返回数据中的特定json值
- 工厂返回数据后未设置角度$scope