如何在公共js模块中从web服务返回数据
How to return data from web service in common js module
我正在使用钛合金编写一个移动应用程序。我不知道如何编写一个返回对象的模块。我编写的版本返回"undefined"
如有任何帮助,我们将不胜感激!
这就是我在index.js 中使用模块的方式
var ResArgs = require("WebData").GetItemDetails(args.barcode, args.type);
Ti.API.info("Received data from WebGetData: " + ResArgs);
这是实际的WebData.js模块
exports.GetItemDetails = function(code, type) {
var url = "http://url/" + code + "/" + type;
var arg = null || {};
var client = Ti.Network.createHTTPClient({
// function called when the response data is available
onload : function(e) {
Ti.API.info("Received text from service: " + this.responseText);
return this.responseText;
},
// function called when an error occurs, including a timeout
onerror : function(e) {
Ti.API.debug(e.error);
alert('error: ' + e.error);
},
timeout : 5000 // in milliseconds
});
client.open("GET", url);
// Send the request.
client.send();
};
使用回调
exports.GetItemDetails = function(code, type, _callback) {
var url = "http://url/" + code + "/" + type;
var arg = null || {};
var client = Ti.Network.createHTTPClient({
// function called when the response data is available
onload : function(e) {
Ti.API.info("Received text from service: " + this.responseText);
_callback && _callback({success : true, data : this.responseText});
},
// function called when an error occurs, including a timeout
onerror : function(e) {
Ti.API.debug(e.error);
alert('error: ' + e.error);
_callback && _callback({success : false, error:e.error});
},
timeout : 5000 // in milliseconds
});
client.open("GET", url);
// Send the request.
client.send();
};
然后你会调用类似的代码
var ResArgs = require("WebData");
ResArgs.GetItemDetails(args.barcode, args.type, function(_response){
if ( _response.success ) {
Ti.API.info("Received data from WebGetData: " + _response.data);
} else {
Ti.API.error("ERROR from WebGetData: " + _response.error);
}
});
查看您的代码GetItemDetails
没有return
语句,因此正确地返回undefined
。由于内部使用的API确实使用回调,因此代码不能以这种明确的方式编写,相反,您的GetItemDetails
方法可能需要回调作为您在onload
或/和onerror
中调用的参数。
我希望这能解释问题。
相关文章:
- 基于api密钥的NodeJS web服务
- 使用javascript在客户端上使用Web服务
- 如何通过安全的https连接在javascript中使用基于soap xml的Web服务
- 从Javascript连接到SOAP Web服务
- 如何将javascript对象作为参数传递到c#web服务中
- AngularJS:使用维基百科API的web服务
- 从javascript调用C#Web服务并使用它(json格式)
- 从简单的html页面调用实时Web服务.
- 在JavaScriptAjax调用中从web服务中的XMLDocument获取响应.
- 如何使用 javascript 从 Web 服务重新加载项目集合
- 创建web服务“;活动指示器”-与所有浏览器兼容的类似指示符
- 如何将WinJS ListView绑定到web服务
- Ajax不调用Web服务
- 将web服务回调的结果绑定到Javascript中的调用函数
- 如何创建可从多个应用程序使用的PHP登录web服务
- Ajax发布到双节点NLB上的web服务
- 无法使用javascript客户端访问远程web服务
- 使用带有AngularJS的DocRaptor web服务
- 如何使用phonegap在android中调用asp.net Web服务
- 如何使应用程序加载独立于web服务调用