получить возвращенное значение обещания с $ q.all - PullRequest
0 голосов
/ 13 декабря 2018

Я хотел бы получить возвращаемое значение обещаний, используя метод $q.all().Это то, что я пробовал до сих пор.

var promise1 = function(time){
            var defered = $q.defer();
            var promise = defered.promise;

            defered.resolve(time);
            console.log(time);
            return promise;
          };

 var promise2 = function(time){
            var defered = $q.defer();
            var promise = defered.promise;

            defered.resolve(time);
            console.log(time);
            return promise;
          };

И способ, которым я пытаюсь получить оба time возвращенные из promise1 и promise2

$q.all([promise1,promise2]).then(function(){
              console.log("Worked");
              console.log(promise1 + " , " + promise2);
              //ref.close();
            });

Но консоль печатает всю функцию обещаний, как это.

function (time){
            var defered = $q.defer();
            var promise = defered.promise;

            defered.resolve(time);
            console.log(time);
            return promise;
          },function (time){
            var defered = $q.defer();
            var promise = defered.promise;

            defered.resolve(time);
            console.log(time);
            return promise;
          }

1 Ответ

0 голосов
/ 13 декабря 2018

Это потому, что вы не вызывали и не передавали значение времени для ваших 2 функций (обещание1 и обещание2) .

Если вы реализуете это следующим образом [обещание1, обещание2] , $ q.all все равно будет запускать его, но будет возвращать функцию вместо значения, поскольку у вас есть функция с параметромfunction (time) {}, которое не было заполнено.

Передайте значение в ваших обещаниях, например: 500 (500ms) .При этом он будет работать на вашем $ q.all

$q.all([promise1(500),promise2(500)]).then(function(data) {
   console.log("Worked");
   console.log(data);
});

Так как простое прохождение [обещание1, обещание2] похоже на прохождение необработанногофункция, которая ожидает, пока вызывающая сторона вызовет их внутренне в другой функции, например, обещание1 (), обещание2 ()

Пример сценария:

var add = function (x, y) { return x + y; }

console.log(add);        // ƒ (x, y) { return x + y; }

console.log(add(1, 2));  // 3
...