Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angular/26.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Angularjs 是否有可能用角度的事件中断循环?_Angularjs_Angular_Typescript_Mouseevent - Fatal编程技术网

Angularjs 是否有可能用角度的事件中断循环?

Angularjs 是否有可能用角度的事件中断循环?,angularjs,angular,typescript,mouseevent,Angularjs,Angular,Typescript,Mouseevent,我在网上找不到任何东西,但是在某个事件(例如mousemove或mouseup)被触发之前,我如何使函数运行?像这样: @HostListener('window:mousedown',['$event'])) onMouseDown():void{ while(true){ //做事 如果(mouseUpEvent | | mouseMoveEvent){/您可以使用Observables执行此操作。当鼠标事件发生时更新行为子对象,并侦听相应行为子对象中的更改。这样,您就可以使用rxjs链接不

我在网上找不到任何东西,但是在某个事件(例如mousemove或mouseup)被触发之前,我如何使函数运行?像这样:

@HostListener('window:mousedown',['$event']))
onMouseDown():void{
while(true){
//做事

如果(mouseUpEvent | | mouseMoveEvent){/您可以使用Observables执行此操作。当鼠标事件发生时更新
行为子对象
,并侦听相应
行为子对象
中的更改。这样,您就可以使用rxjs链接不同的事件

mouseDown$=newbehaviorsubject();
mouseUp$=新行为主体();
mouseMove$=新行为主体(),
listenToMouseEvents():void{
这个.mouseDown$.pipe(
takeUntil(merge(this.mouseUp$,this.mouseMove$),//停止可观察对象的条件
repeat()//这样就不会杀死可观察对象
).订阅(()=>{
//做事
})
}
@HostListener('窗口:mousedown',['$event']))
onMouseDown():void{
this.mouseDown$.next();
}
@HostListener('窗口:mouseup',['$event']))
onMouseUp():void{
this.mouseUp$.next();
}
@HostListener('窗口:mousemove',['$event']))
onMouseMove():void{
this.mouseMove$.next();
}

我最终使用了类似于此代码的东西,但在调用mouseup或mousemove时计时器会停止,我有时间时会发布代码。谢谢!