rxjs里subscribeToArray的一个JavaScript模拟实现

118 阅读1分钟

源代码:

<html>
<script>

function subscribeToArray(array){
	return function(subscriber){
		 for (var i = 0, len = array.length; i < len; i++) {
          subscriber.next(array[i]);
      	}
      subscriber.complete();
	};

}

var input = [1,2,3];

var result = subscribeToArray(input);

var print = function(input){
	if(!!input){
		console.log('next: ' + input);
	}
	else{
		console.log('complete!');
	}
}

var oSubscriber = {
	next: print,
	complete: print
};

result(oSubscriber);
debugger;
</script>
</html>

输出:

在subscribeToArray返回的函数内部,输入array通过一个闭包被存储:

更多Jerry的原创文章,尽在:“汪子熙”: