为了账号安全,请及时绑定邮箱和手机立即绑定

我可以订阅正在初始化的变量吗?

我可以订阅正在初始化的变量吗?

千巷猫影 2021-07-06 09:05:40
我想在特定变量被初始化时得到通知。像这样的东西。var name;// magic happens hereinitialization(name).subscribe(_name => {...});setTimeout(_ => {  name = 'foo';}, 1000);有没有已知的方法可以做到这一点?
查看完整描述

2 回答

?
小唯快跑啊

TA贡献1863条经验 获得超2个赞

您可以使用setter,如果你有过的功能没有控制这台价值,name或者如果你只是想避免增加逻辑,每一个的那些功能(如果有很多人):


const _subject = new Subject();

// keep good practise and do not subscribe to Subjects:

const observable$ = _subject.asObservable();


let _name;

set name(name) {

  _name = name;

  subject.next(name);

};


// also adding a getter in case you want to use 'name' somewhere else

get name() {

  return _name;

}


// magic happens here

observable$.subscribe(_name => {...});


setTimeout(_ => {

  name = 'foo';

}, 1000);

这将在每次name获取值时发出,但您可以。前任。pipe(take(1))它只会发出一次 - 在name获得一个值之后


查看完整回答
反对 回复 2021-07-08
  • 2 回答
  • 0 关注
  • 148 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信