0

给定一个 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'); });
    
4

2 回答 2

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'); 
}



});
于 2014-07-16T10:08:05.420 回答
1

访问nth 函数

不,promise 对象的唯一目的是then在它被解析时执行回调。它不应该让您管理回调。
当然,可能总是有一种依赖于实现的方式来做到这一点。

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

不,Promises/A+ 规范要求“所有相应的 […] 回调必须按照它们对 . 的原始调用的顺序执行then ”因此,您不能动态插入某些内容。

如果您需要这样的功能,我建议您使用一系列您自己管理的事情来做。然后在你的 Promise 中添加一个回调,按照你想要的顺序执行这些任务。

于 2015-04-09T10:34:08.503 回答