Множественный XHR-запрос сработал с использованием esri/request, возвращая отложенный при обработке с использованием dojo/promise/all

У меня возникают трудности при обработке нескольких запросов XHR, запущенных с использованием esri/request.

Я запускаю несколько запросов, используя код ниже

var def1 = esriRequest({
   url: url1,
   content: { f: "json" },
   handleAs: "json",
   callbackParamName: "callback"
});


var def2 = esriRequest({
    url: url2,
    content: { f: "json" },
    handleAs: "json",
    callbackParamName: "callback"
});

Чтобы справиться с этим, я пишу следующий код

var promise1 = def1.promise;
var promise2 = def2.promise;

all(promise1, promise2).then(function (results) {
    console.log(results);//here I am getting results as deferred instead of actual result. why?
}, function (err) {
    console.log(err);
});

Я получаю результаты, как отложено в обратном вызове успеха всего выше.

Может кто-нибудь сказать мне, почему я получаю отсрочку вместо фактических результатов?

1 ответ

Я получал результаты как отложенные, потому что мне не хватало квадратных скобок в параметрах, передаваемых всем. Правильный способ назвать все следующим образом

var promise1 = def1.promise;
var promise2 = def2.promise;

all([promise1, promise2]).then(function (results) {
   console.log(results);
}, function (err) {
   console.log(err);
});
Другие вопросы по тегам