我搜索了RxJS中defer
的用法,但仍然不明白何时以及为什么要使用它。
据我所知,只有当有人订阅它之前,Observable方法才会被触发。
如果是这样的话,那么为什么我们需要用defer
来包装一个Observable方法呢?
我仍然想知道为什么要使用defer
来包装Observable?这会有什么不同吗?
var source = Rx.Observable.defer(function () {
return Rx.Observable.return(42);
});
var subscription = source.subscribe(
function (x) { console.log('Next: ' + x); },
function (err) { console.log('Error: ' + err); },
function () { console.log('Completed'); } );