开始使用promises,如何简化它们,控制启动,访问响应,按顺序等待多个异步请求?

时间:2015-12-09 08:08:13

标签: asynchronous promise angular-promise

开始承诺,一些一般性问题:

  1. 回调是否应始终嵌套在代码的同一块中?如何以简单的方式写下承诺?
  2. 如果在promise的then部分内调用了多个函数,为什么它在控制台中总是未定义?如果没有做出承诺,为什么要执行代码?错误:无法读取未定义的属性'replace'。 (未定义异步响应的rData)?
  3. 是否可以命名一个promise的实例,以便在它真正完成时可以访问数据?
  4. 有没有办法知道哪些承诺没有完成?
  5. 可以承诺共享回调函数吗?
  6. 以下代码的哪一部分可以是同步多个异步请求的promise实例的变量,用于取消代码。
  7. 编写相同功能代码的其他方法有哪些?特别是它呢?
  8. 如何编写代码的变体来控制请求的开始,以便它们按顺序启动?我读过有关使用angular.factory的内容,但不太清楚。 - >
  9.   

    是否可以控制AngularJS中承诺的开始和结束?   怎么样?在具有多个相同类型的情况下开始,和   有些人之间有数据依赖关系吗?

    基于以下代码作为AngularJS控制器的一部分,来自上一期(How to wait for AsyncRequests for each element from an array using reduce and promises):

    $scope.details = [] ;
    
    var carList = [
        {
            id: 0,
            brand: 'Nissan',
            status: 'В резерве',
            mileage: 0,
            price: 20000
        },
        {
            id: 1,
            brand: 'Mazda',
            status: 'На складе',
            mileage: 0,
            price: 30000
        },
        {
            id: 2,
            brand: 'BMW',
            status: 'На складе',
            mileage: 12000,
            price: 35000
        }
    ];
    
    
            cars.reduce(function(promise, car) {
                return promise.then(function(){
                  return TheService.AsyncRequest(car).then(function (rData) {
                    (String(rData)).replace ("abd", "abc");
                    validateData (rData );
                    decirateData (rData );
                    $scope.details.push(rData);
                  });
                });
            }, $q.when());
    

    在$ q和Promise的情况下?

0 个答案:

没有答案