使用esri / request触发的多个XHR请求在使用dojo / promise / all处理时返回延迟

时间:2018-08-14 09:11:02

标签: promise dojo esri esri-javascript-api

在处理使用esri / request触发的多个XHR请求时遇到困难。

我正在使用以下代码触发多个请求

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 个答案:

答案 0 :(得分:0)

我得到延期的结果是因为我在传递给所有人的参数中缺少方括号。正确的呼叫方式如下

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

all([promise1, promise2]).then(function (results) {
   console.log(results);
}, function (err) {
   console.log(err);
});