探索/浏览承诺链

时间:2014-07-16 10:05:01

标签: javascript angularjs promise angular-promise

给定一个promise对象是否可以浏览附加到它的不同函数?

因此有这种情况(使用角度):

var promise = $http({ method: 'GET', url: '/random' });
promise.then(function () { console.log('Value1'); });
promise.then(function () { console.log('Value2'); });
promise.then(function () { console.log('Value4'); });
promise.then(function () { console.log('Value5'); });

有没有办法访问:

  • 访问n功能
  • 在当前链之间添加一个函数

    var promise = $http({ method: 'GET', url: '/random' });
    promise.then(function () { console.log('Value1'); });
    promise.then(function () { console.log('Value2'); });
    
    // New insertion:
    promise.then(function () { console.log('Value3'); });
    
    promise.then(function () { console.log('Value4'); });
    promise.then(function () { console.log('Value5'); });
    

2 个答案:

答案 0 :(得分:1)

是不是可以用参数把它放在你的函数中?

例子

var promise = $http({ method: 'GET', url: '/random' })
.success(function(data, status, headers, config) {
                    promise.resolve('value2');
                })
promise.then(function (value) { 
if(value == 'value1') {
    console.log('Value1'); 
}
if(value == 'value2') {
    console.log('Value2'); 
}



});

答案 1 :(得分:1)

  

访问n功能

没有。 promise对象的唯一目的是在解析时执行then回调。它不应该让你管理回调 当然,可能始终存在依赖于实现的方式。

  

在当前链之间添加一个函数

没有。 Promises/A+ spec要求" 所有相应的回调必须按照原始来电then的顺序执行。"因此,您无法动态插入内容。

如果您需要此类功能,我建议您自行管理一系列事情。然后在您的承诺中添加一个回调,按照您想要的顺序执行这些任务。