我正在为iPad开发Worklight 6.1版本的应用程序,并部署了单个适配器,其中包含多个程序。现在我正在从客户端点击适配器并从服务器获得响应。将该响应存储在某处并传递回下一个适配器调用以获取该响应的相关数据。
function GetUSERRID(){
var invocationData = {
adapter : 'CORE_ADAPTER',
procedure : 'GetUserRID',
parameters : [ param1, param2 ]
};
WL.Client.invokeProcedure(invocationData,{
onSuccess : GetUserRID,
onFailure : function GetUserRIDFailure(response){ busyInd.hide();console.log("reponse failure "+response);},
});
}
function GetUserRID(response){
var rid = response.invocationResult.RID;
var invocationData = {
adapter : 'CORE_ADAPTER',
procedure : 'GetUserRID_Details',
parameters : [ rid ]
};
WL.Client.invokeProcedure(invocationData,{
onSuccess : ShowDetailsForRID,
onFailure : function GetUserRID_DetailsFailure(response){ busyInd.hide();console.log("reponse failure "+response);},
});
}
在上面的代码中,我从客户端进行了两个适配器调用。从第一个开始,我正在获取一些数据,我再次将其传递回下一个适配器以获取相关数据。
是否可以在服务器上进行单个适配器调用,并且该适配器将使用第一个适配器响应中的所需数据作为参数调用服务器上的另一个适配器,并对其进行处理并将数据返回给客户端?
您需要阅读"高级适配器用法和混搭"培训模块,该模块确切地讨论了如何"链式适配器调用"。
上面的链接中也提供了一个示例项目。
与客户端相同,只需使用
西城。Server.invokeProcedure(invocationData,options);
var invocationData = {
adapter : 'ADAPTER_NAME',
procedure : 'PROCEDURE_NAME',
parameters : [param1,param2]
};
WL.Server.invokeProcedure(invocationData,{
onSuccess : getDataSuccess,
onFailure : getDataFailure,
});