コールバックに関するさらに別の質問で申し訳ありません。この問題を解決しようとして、私は約 100 万のそれらに出くわしました。ただし、この特定のシナリオに頭を悩ませています。
私は以下のコードを持っていますが、デリゲートは明らかに値を返さないため、明らかに機能しません (私はここで学んでいます)。したがって、この時点でコールバックが必要であることはわかっていますが、それを行うためにこのコードを変更する方法がわかりません。誰でも助けることができますか?
function MyFunction() {
var ThisLoggedInUser = checkCurrentUser();
//do some stuff with the current user
}
function checkCurrentUser() {
var context = SP.ClientContext.get_current();
var siteColl = context.get_site();
var web = siteColl.get_rootWeb();
this._currentUser = web.get_currentUser();
context.load(this._currentUser);
context.executeQueryAsync(Function.createDelegate(this, this.CheckUserSucceeded),
Function.createDelegate(this, this.CheckUserfailed));
}
function CheckUserSucceeded() {
var ThisUser = this._currentUser.get_title();
return ThisUser;
}
function CheckUserfailed() {
alert('failed');
}