2017-01-04 5 views
0

objectStream의 forEach 메소드에서 리턴 된 오브젝트가 옵저버인지 확인하고 싶습니다. typeof를 시도했지만 분명히 작동하지 않습니다. 아래의 스 니펫을 찾으십시오.스트림의 오브젝트가 관찰 가능인지 확인합니다.

var Observable = Rx.Observable; 
 

 
var button = document.getElementById('button'); 
 
var click$ = Observable.fromEvent(button, 'click'); 
 

 
click$.forEach(function(item){ 
 
    
 
    console.log('clicked', typeof(item), item instanceof Rx.Observable); 
 
})
<!DOCTYPE html> 
 
<html> 
 
<head> 
 
    <meta charset="utf-8"> 
 
    <meta name="viewport" content="width=device-width"> 
 
    <title>JS Bin</title> 
 
<script src="https://cdnjs.cloudflare.com/ajax/libs/rxjs/4.0.6/rx.all.js"></script> 
 
    
 
</head> 
 
<body> 
 
    <button id="button">click me</button> 
 
</body> 
 
</html>

어떤 도움을 사전에

감사 감사

T

+0

왜 값 대신에 관찰자가 필요하겠습니까? – Asti

+0

foreach는 메서드를 호출 한 동일한 객체 유형을 다시 호출합니다. – thegio

답변

2

코드 스 니펫이 MouseEvent 인스턴스의 관찰 가능한 스트림을 만들고 있습니다.

관찰자 스트림을 생성하는 것은 매우 드뭅니다. 그것이 진실로 당신의 시나리오라면, 스 니펫이 그것을 반영한다면 도움이 될 것입니다.

+0

OP는 (질문의) Observer 또는 Observable (제목의)을 의미합니까? 시퀀스 시퀀스가 ​​이상한 것은 아닙니다. (예 :'Switch' /'Concat' /'Merge') –

+0

모두 true이면 시나리오의 명확한 설명을 볼 수 있습니다! –

+0

이것은 반응 형 프로그래밍의 일반적인 시나리오이며 foreach는 객체와 동일한 유형의 스트림을 반환해야합니다. – thegio