Mic*_*l D 10
delayof('e').pipe(delay(2000)).subscribe(...)- e2 秒后发射。演示
var { of } = rxjs;
var { tap, delay } = rxjs.operators;
var displayBox = document.getElementById('display');
of('e').pipe(
tap(_ => displayBox.innerHTML = 'Source observable emitted.'),
delay(2000)
).subscribe(
_ => displayBox.innerHTML += '<br />Received emission in subscription.',
null,
() => displayBox.innerHTML += '<br />Observable complete.'
);Run Code Online (Sandbox Code Playgroud)
<script src="https://unpkg.com/rxjs@6.4.0/bundles/rxjs.umd.min.js"></script>
<p id="display"></p>Run Code Online (Sandbox Code Playgroud)
intervalinterval(2000).subscribe(...)- 2秒后开始,每2秒发射一次。演示
var { interval } = rxjs;
var displayBox = document.getElementById('display');
interval(2000).subscribe( // won't complete
value => displayBox.innerHTML += '<br />Received emission in subscription: ' + value
);Run Code Online (Sandbox Code Playgroud)
<script src="https://unpkg.com/rxjs@6.4.0/bundles/rxjs.umd.min.js"></script>
<p id="display"></p>Run Code Online (Sandbox Code Playgroud)
timertimer(initialDelay)- 在延迟后发出一次并完成。
timer(2000).subscribe(...)- 2秒后发出并完成。timer(initialDelay, period)在初始延迟后开始,每个给定时间段发出。
timer(0, 2000).subscribe(...)- 立即启动,每 2 秒发射一次。timer(2000, 2000).subscribe(...)- 2 秒后开始,每 2 秒发射一次(类似于interval(2000))。演示
var { timer } = rxjs;
var timerNoDelayBox = document.getElementById('timerNoDelay');
var timerDelayBox = document.getElementById('timerDelay');
// w/o initial delay
timer(0, 2000).subscribe( // won't complete
value => timerNoDelayBox.innerHTML += '<br />Received emission in subscription: ' + value
);
// w/ initial delay
timer(2000, 2000).subscribe( // won't complete
value => timerDelayBox.innerHTML += '<br />Received emission in subscription: ' + value
);Run Code Online (Sandbox Code Playgroud)
table {
font-family: arial, sans-serif;
border-collapse: collapse;
width: 100%;
}
td, th {
border: 1px solid #dddddd;
text-align: left;
padding: 8px;
width: 50%;
}Run Code Online (Sandbox Code Playgroud)
<script src="https://unpkg.com/rxjs@6.4.0/bundles/rxjs.umd.min.js"></script>
<table>
<tr>
<th>Timer w/o initial delay</th>
<th>Timer w/ initial delay</th>
</tr>
<tr>
<td>
<p id="timerNoDelay"></p>
</td>
<td>
<p id="timerDelay"></p>
</td>
</tr>
</table>Run Code Online (Sandbox Code Playgroud)
以下图片取自https://rxmarbles.com,这是我在使用 RxJS 时强烈推荐的网站:
延迟来自 Observable 源(顶行)的项目发射。
创建一个 Observable,它在给定时间后开始发射,并在此后的每个时间段后发射越来越多的数字。这里没有可观察的源/输入。
创建一个 Observable,它在每个指定的时间间隔发出连续的数字。这里也没有源/输入 Observable。
| 归档时间: |
|
| 查看次数: |
8384 次 |
| 最近记录: |