如何从executeQueryAsync获取返回值?

时间:2017-10-28 03:29:56

标签: javascript sharepoint-jsom

我无法弄清楚如何从下面的方法中获取返回值。我正在向数组中添加项目。这很好。我只是无法从函数返回数组。

\t;

1 个答案:

答案 0 :(得分:1)

这是不可能的,因为您无法从同步方法内的异步调用返回。但是你可以通过传递一个回调函数来获得你想要的东西。

var termList = loadTerms(termSetId);

function loadTerms(termSetId, callback) {

  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()));
      }

      callback(termList); // callback here

    });
}

loadTerms("termSetId", function(returnedValue) {
  console.log(returnedValue); //You get the value here.
});