Javascript 如何从executeQueryAsync获取返回值?

Javascript 如何从executeQueryAsync获取返回值?,javascript,sharepoint-jsom,Javascript,Sharepoint Jsom,我无法计算如何从下面的方法中获取返回值。我正在向数组中添加项。那很好。我无法从函数中获取返回的数组 var termList = loadTerms(termSetId); function loadTerms(termSetId) { var termList = []; var taxSession = SP.Taxonomy.TaxonomySession.getTaxonomySession(clientContext); var te

我无法计算如何从下面的方法中获取返回值。我正在向数组中添加项。那很好。我无法从函数中获取返回的数组

var termList = loadTerms(termSetId);

function loadTerms(termSetId) {

        var termList = [];
        var taxSession = SP.Taxonomy.TaxonomySession.getTaxonomySession(clientContext);
        var termStore = taxSession.getDefaultSiteCollectionTermStore();
        var termSet = termStore.getTermSet(termSetId);
        var terms = termSet.getAllTerms();

        clientContext.load(terms, 'Include(Name)');

        clientContext.executeQueryAsync(
            function () {                    

                for (var i = 0; i < terms.get_count(); i++) {

                    var term = terms.getItemAtIndex(i);
                    termList.push(term);
                    console.log(String.format('12 Term : {0}', term.get_name()));
                }

                // At this point TermList has the values I need. How do I return it to the caller?

            });            
    }
var termList=loadTerms(termSetId);
函数加载项(termSetId){
var-termList=[];
var taxSession=SP.Taxonomy.TaxonomySession.getTaxonomySession(clientContext);
var termStore=taxSession.getDefaultSiteCollectionTermStore();
var termSet=termStore.getTermSet(termSetId);
var terms=termSet.getAllTerms();
加载(术语“包括(名称)”;
clientContext.executeQueryAsync(
函数(){
for(var i=0;i
这是不可能的,因为您不能从同步方法内的异步调用返回。但是,通过传递回调函数,您可以得到您想要的

var termList = loadTerms(termSetId);

function loadTerms(termSetId) {

        var termList = [];
        var taxSession = SP.Taxonomy.TaxonomySession.getTaxonomySession(clientContext);
        var termStore = taxSession.getDefaultSiteCollectionTermStore();
        var termSet = termStore.getTermSet(termSetId);
        var terms = termSet.getAllTerms();

        clientContext.load(terms, 'Include(Name)');

        clientContext.executeQueryAsync(
            function () {                    

                for (var i = 0; i < terms.get_count(); i++) {

                    var term = terms.getItemAtIndex(i);
                    termList.push(term);
                    console.log(String.format('12 Term : {0}', term.get_name()));
                }

                // At this point TermList has the values I need. How do I return it to the caller?

            });            
    }
var termList=loadTerms(termSetId);
函数loadTerms(termSetId,回调){
var-termList=[];
var taxSession=SP.Taxonomy.TaxonomySession.getTaxonomySession(clientContext);
var termStore=taxSession.getDefaultSiteCollectionTermStore();
var termSet=termStore.getTermSet(termSetId);
var terms=termSet.getAllTerms();
加载(术语“包括(名称)”;
clientContext.executeQueryAsync(
函数(){
for(var i=0;i