JavaScript の実行時に CoreService からユーザー名を取得する( Tridion PowerToolsからの) 以下があります。
JavaScript (アンギラ):
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 側: (C# .svc)
[OperationContract, WebGet(ResponseFormat = WebMessageFormat.Json)]
public ExampleData GetUserInfo()
{
var coreService = Client.GetCoreService();
_exampleData = new ExampleData()
{
UserName = coreService.GetCurrentUser().Title
};
return _exampleData;
}
これにより、非同期呼び出しが送信されます。
PowerTools.Model.Services.Example.GetUserInfo(onSuccess, onFailure, context, false)
一方、これは応答を処理するために別の関数を割り当てます。
Function.getDelegate(this, this._handleUserInfo)
しかし、onSuccess、onFailure、context、および Boolean はどこから来PowerTools.Model.Services.Example.GetUserInfo(onSuccess, onFailure, context, false)
ますか?
この 4 つのパラメーターの署名は、サービス コード内のパラメーターのない GetUserInfo() と一致しません。なぜその順序とこれらの 4 つ?