Tengo lo siguiente (desde Tridion PowerTools), que obtiene un nombre de usuario del CoreService cuando se ejecuta JavaScript.¿Qué significan todos estos parámetros cuando se llama a un método web WCF de Anguila JavaScript?
JavaScript (Anguilla):
PowerTools.Popups.Example.prototype._onbtnGetUserInfoClicked = function() {
var onSuccess = Function.getDelegate(this, this._handleUserInfo);
var onFailure = null;
var context = null;
//call function
PowerTools.Model.Services.Example.GetUserInfo(onSuccess, onFailure,
context, false);
};
// Delegate function "onSuccess"
PowerTools.Popups.Example.prototype._handleUserInfo = function (response) {
var p = this.properties;
$j("#lblUserInfo").text(response.UserName);
};
CoreService lado: (C# .svc)
[OperationContract, WebGet(ResponseFormat = WebMessageFormat.Json)]
public ExampleData GetUserInfo()
{
var coreService = Client.GetCoreService();
_exampleData = new ExampleData()
{
UserName = coreService.GetCurrentUser().Title
};
return _exampleData;
}
Esto envía una llamada asincrónica:
PowerTools.Model.Services.Example.GetUserInfo(onSuccess, onFailure, context, false)
Considerando que la presente asigna una función diferente para manejar la respuesta:
Function.getDelegate(this, this._handleUserInfo)
Pero ¿de dónde onSuccess, onFailure, el contexto y el operador booleano provienen de: PowerTools.Model.Services.Example.GetUserInfo(onSuccess, onFailure, context, false)
?
Esta firma de cuatro parámetros no coincide con el no-parámetro GetUserInfo() en el código de servicio. ¿Por qué esa orden y estas cuatro?
Editar: aclaró qué parte I estaba confundido acerca de. –