ネストされたcontext.executeQueryAsyncをDeferredで使用するにはどうすればよいですか?以下は私のコードであると私は私が探しています正確に何を説明します:ネストされたcontext.executeQueryAsync with Deferred
コード
function getValues() {
var dfd = $.Deferred(function() {
context.executeQueryAsync(function() {
var navigationItem = [];
// First Loop
while (termEnumerator.moveNext()) {
// Push Parent Terms in navigationItem array
navigationItem.push({ "name": ""});
// Get Sub Terms
context.executeQueryAsync(function() {
// Second Loop
while (termsEnum.moveNext()) {
// Push Sub Terms in navigationItem array
navigationItem.push({ "name": ""});
}
}, function (sender, args) {
console.log(args.get_message());
});
}
dfd.resolve(navigationItem);
}, function (sender, args) {
console.log(args.get_message());
dfd.reject(args.get_message());
});
});
return dfd.promise();
}
基本的に私は、コードの構造上使用してSharePoint Onlineの中で(それはサブ用語だ&規約)分類を取得しようとしています。最初はnavigationItem
という名前の配列を作成し、すべての用語を繰り返しました。
最初に、この配列に用語をプッシュしています。これに加えて、サブ用語があれば、同じ配列にプッシュします。
2番目のループが実行を完了するまで、そのコードがさらに実行されないようにします。私は最終的な配列を持って、別の関数に戻します。