Я хочу получить результат для двух API, когда оба завершены - PullRequest
0 голосов
/ 06 ноября 2018

У меня есть два API, и я хочу, когда оба API завершены, сделать другую работу, И другой вопрос заключается в том, что если я хочу выступить в качестве цепочки, сначала нужно запустить, а затем запустить последний, в консоли неопределено написать

  var promiseA = service.getAppReciverServiceList(function (data) {
    self.chargeMoney = data;


});
var promiseB = service.getAppReciverServiceList(function (data) {
    self.chargeMoney = data;

 return data;
});
setTimeout(function () { console.log(promiseB); }, 2000);

q.all([
    promiseA, promiseB
]).then(function (data) {
    console.log(data)
    //Array of result [resultOfgetServiceDetails1, resultOfgetServiceDetails2]
    scope.variable = data;
});

1 Ответ

0 голосов
/ 07 ноября 2018

Я нахожу свой ответ,

если мы хотим использовать цепочку, подразумеваем один ответ API, а затем другую работу API:

  var promise = $q(function (resolve, reject) {
            service.getAppReciverServiceList(function (data) {
                console.log("1")
                resolve(data);
            })
           });

 promise.then(function (data) {
        console.log(data, "2")


    });

если мы хотим получить все ответы API, а затем выполнить другую работу:

var deffered1 = $q.defer();
service.getAppReciverServiceList(function (data) {
    deffered1.resolve(data);
})
var deffered2 = $q.defer();
service.getAppReciverServiceList(function (data) {
    deffered2.resolve(data);

});

$q.all([deffered1.promise, deffered2.promise]).then

    (
    function (data) {
        console.log(data);
    },
    function () {
        console.log('an error occured');
        // error
    }

    );
...