【发布时间】:2023-03-12 21:22:01
【问题描述】:
我是 RxJS 的初学者, 我目前正在使用 RxJS@5 并且不了解我的代码的行为
const currentExtentMinutes$ = initialExtentMinutes$
.merge(selectedExtentMinutes$)
.distinctUntilChanged()
// We message the worker that
// there is a new extent minutes
currentExtentMinutes$
.subscribe(currentExtentMinutes => {
console.log('send current extent', currentExtentMinutes);
currentExtentMinutes => worker.postMessage({currentExtentMinutes});
});
这很好用,但是一旦我添加了另一段代码,第一次订阅就不再起作用了
sortedTeams$.withLatestFrom(currentExtentMinutes$)
.subscribe(([teams, extent]) => {
const d3line = line()
.x((pt, i) => scaleMinutes.invert(extent[0]) + scaleMinutes.invert(i))
.y(scaleRanking)
.curve(curveCardinal.tension(.5));
const lines = gGraph.selectAll('.team-path').data(teams, _.get('name'));
lines.enter().append('path')
.attr('class', 'team-path')
.style('stroke', team => `rgb(${team.colors[0]})`)
.style('stroke-width', 7)
.style('stroke-linecap', 'round')
.style('stroke-linejoin', 'round')
.style('fill', 'none')
.merge(lines)
.transition(t)
.attr('d', team => d3line(team.ranking));
});
我做错了吗?
【问题讨论】:
标签: javascript rxjs