我可以将WL.Client.invokeProcedure(invocationData,options)的结果分配给变量。
function getCategory(){
var invocationData = {
adapter : 'Go2needsSQL',
procedure : 'myLatLang',
parameters : []
};
var options = {
onSuccess : procedureSuccess,
onFailure : procedureFailure,
invocationContext: {}
};
var r = WL.Client.invokeProcedure(invocationData, options);
alert(JSON.stringify(r));
}
function procedureSuccess(result){
return result;
}
function procedureFailure(){
alert("Failed");
}
在上面的代码中,alert()给出了空的json响应。
答案 0 :(得分:2)
是的,您可以但根据docs,它不会返回任何内容(undefined
)
结果是异步获得的,所以当你alert
时没有结果,因为函数返回undefined
。
您必须使用稍后在调用过程时调用的成功处理程序:
function getCategory() {
var result;
var invocationData = {
adapter: 'Go2needsSQL',
procedure: 'myLatLang',
parameters: []
};
var options = {
onSuccess: procedureSuccess,
onFailure: procedureFailure,
invocationContext: {}
};
result = WL.Client.invokeProcedure(invocationData, options);
alert(JSON.stringify(result)); ///this will alert nothing
}
function procedureSuccess(__result) {
result = __result;
alert(JSON.stringify(result)) //this will be okay
}
function procedureFailure() {
alert("Failed");
}