gpt4 book ai didi

angular - 无法在 Angular 6 的 setInterval() 中绑定(bind)变量

转载 作者:行者123 更新时间:2023-12-04 17:41:32 24 4
gpt4 key购买 nike

我已经使用 setInterval() 方法在我的 angular 6 项目中显示当前日期时间。但是在 setInterval() 调用之后数据时间变量值没有改变。它采用 onload 值。这是我的代码

.ts

constructor(private data: DataService) {
this.data.get_data('current-gmt-date',true)//service call
.subscribe((data:any) => {
this.now = data.data.currentDateTime;//2019-01-21 20:30:0
});
setInterval(() => {
this.now.setSeconds( this.now.getSeconds() + 1 );
console.log(this.now);
}, 1000);
}

和.html

<span class="dateClock">Time:  {{now | date:'yyyy-MM-dd H:mm:ss ' : 'UTC' }}</span>

最佳答案

您可以使用 rxjs 中的 interval

// RxJS v6+
import { interval } from 'rxjs';

//emit value in sequence every 1 second
const source = interval(1000);.
const subscribe = source.subscribe(() => console.log(new Date()));

你的情况

const subscribe = source.subscribe(() => this.now = new Date()));

编辑:使用 mergeMap 以 1 秒的间隔调用您的可观察对象

source.pipe(
mergeMap(() => this.data.get_data('current-gmt-date',true))
)
.subscribe((data) => this.now = data.data.currentDateTime)

关于angular - 无法在 Angular 6 的 setInterval() 中绑定(bind)变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54294503/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com