2016-05-16 54 views
0

我试图与RxJS一个基本的例子上Array.observe,但我发现了一个错误,指出:RxJS - 不支持你的平台

rx.all.js:2880 Uncaught TypeError: Array.observe is not supported on your platform

这是我的代码现在:

<!DOCTYPE html> 
<html> 
<head> 


<script src="node_modules/rx/dist/rx.all.js"></script> 

<script> 
    var array = []; 

    var observable = new Rx.Observable.ofArrayChanges(array); 

    observable.subscribe((res) => { 
     console.log(res.object[res.index]); 
    }); 

    setInterval(() => { 
     array.push(Math.random()); 
    }, 1000); 
</script> 


</head> 
<body> 
</body> 
</html> 

你能想到为什么会发生这种情况吗?

回答

2

ofArrayChanges仅仅是围绕着Array.observe功能的薄包装,这是一项实验性技术方案,此后被拒绝并将在未来取消。

参见:http://caniuse.com/#feat=object-observe

正如你所看到的功能才真正存在了镀铬的3个版本和歌剧1,因此,如果您的应用程序的那个(可能是一个安全的假设)之外使用,那么你可能会需要改变你的方法。

+3

对,那么我会采取什么样的方法? – Illinois47

+0

检查 https://mail.mozilla.org/pipermail/es-discuss/2015-November/044684.html –

+0

我已经看到Rx.Observable.ofArrayChanges()(例如)在教学课程教材中使用,所以要小心样本代码给你这个例外。从它的消亡看来,这是任何人都找到的唯一有用的目的。 – mikee