相关疑难解决方法(0)

如何在.then()链中访问先前的promise结果?

我已经将我的代码重组为承诺,并构建了一个由多个回调组成的精彩长扁平承诺链.then().最后我想返回一些复合值,并且需要访问多个中间承诺结果.但是,序列中间的分辨率值不在最后一个回调的范围内,我该如何访问它们?

function getExample() {
    return promiseA(…).then(function(resultA) {
        // Some processing
        return promiseB(…);
    }).then(function(resultB) {
        // More processing
        return // How do I gain access to resultA here?
    });
}
Run Code Online (Sandbox Code Playgroud)

javascript scope promise bluebird es6-promise

607
推荐指数
10
解决办法
18万
查看次数

如何按顺序执行promises数组?

我有一系列承诺需要按顺序运行.

var promises = [promise1, promise2, ..., promiseN];
Run Code Online (Sandbox Code Playgroud)

调用RSVP.all将并行执行它们:

RSVP.all(promises).then(...); 
Run Code Online (Sandbox Code Playgroud)

但是,我怎么能按顺序运行它们呢?

我可以像这样手动堆叠它们

RSVP.resolve()
    .then(promise1)
    .then(promise2)
    ...
    .then(promiseN)
    .then(...);
Run Code Online (Sandbox Code Playgroud)

但问题是承诺的数量各不相同,承诺数组是动态建立的.

javascript promise ember.js rsvp.js

76
推荐指数
5
解决办法
4万
查看次数

标签 统计

javascript ×2

promise ×2

bluebird ×1

ember.js ×1

es6-promise ×1

rsvp.js ×1

scope ×1