【发布时间】:2016-10-24 21:58:17
【问题描述】:
var state = [];
var operation1 = function() {
return Rx.Observable.fromPromise(new Promise((resolve, reject) => {
state.push(1, 2);
setTimeout(resolve, 300, state);
}));
};
var operation2 = function() {
return Rx.Observable.fromPromise(new Promise((resolve, reject) => {
state = state.map(x => x * 2);
setTimeout(resolve, 200, state);
}));
};
var operation3 = function() {
return Rx.Observable.fromPromise(new Promise((resolve, reject) => {
state = state.reduce( (prev, next) => prev + next );
setTimeout(resolve, 100, state);
}));
};
var operations = [operation1, operation2, operation3];
鉴于上面的代码,我试图将operations 组合成一个Observable,它会发出每个操作的状态。所以Observable 需要做以下任一操作:
- 发射3次:
[1, 2], [2, 4], 6 - 发射1次:
[[1, 2], [2, 4], 6]
【问题讨论】:
-
你的意思是说你只想在链中的前一个promise完成后才做产生promise的工作吗?
-
@GregL 是的,这是正确的。我已经更新了示例以显示这一点。
标签: javascript promise rxjs observable rxjs5