草庐IT

intersection-observer

全部标签

javascript - 当没有编写 api 时,如何模拟 Angular2 中的 http observable

我是Angular2和Rxjs的新手,我对一个特定案例有点困惑。我有一个简单的服务:import{Injectable}from'@angular/core';import{Observable,Subject}from'rxjs/Rx';import{Http,Response}from'@angular/http';exportinterfaceArticle{id:number;title:string;content:string;author:string;}@Injectable()exportclassArticleService{private_articles$:Su

javascript - Anuglar2 生命周期事件作为 rxjs Observable

是否有构建方法来获取像OnDestroy这样的angular2生命周期事件作为rxjsObservable?我想订阅这样的可观察对象:ngOnInit(){MyService.myCustomFunction().takeUntil(NgOnDestroy)//NgOnDestroywouldbethelifecycleobservable.subscribe(()=>{//anycode});}这似乎比以下更直观且更易读:privatecustomObservable:Observable;ngOnDestroy(){this.customObservable.unsubscribe

javascript - Mutation Observer 未能检测到元素的 dom 移除

所以,我认为这会非常简单,以前有一个DOMNodeRemoved事件,但已弃用,而是MutationObserver应该使用,问题是,即使配置适当,它也不会触发。根据thisarticle关于从变异事件迁移到变异观察者,检测dom节点移除的配置是{childList:true,subtree:true},这适合给出childList是强制性的并且subtree根据themdnarticle,这意味着它将捕获不仅针对目标的突变,还针对目标的后代进行观察.无论如何,我做了一个jsfiddle问题,很简单,删除并且观察者应该记录变异记录,但它没有,看看你能不能弄清楚:)HTMLOhmygod

javascript - Array.observe 的 "add"事件在什么情况下会触发?

我正在学习如何观察数组对象。我发现以下内容令人惊讶:varfooArray=[];Array.observe(fooArray,function(changes){console.log('changes:',changes[0].type);});fooArray.push({});导致变化的类型是拼接而不是添加哪些方法会导致add类型的更改事件?在我看来,在其上推送单个值是最有可能的情况。 最佳答案 MDNreference不清楚在什么情况下触发每种变化类型。详细解释如下:拼接涵盖您希望在数组中发生的所有更改。以下所有函数都会触

javascript - 如何在 RxJS 中完成 Observable

假设我们有一个Observable:varobservable=Rx.Observable.fromEvent(document.getElementById('emitter'),'click');如何让它完成(什么会触发所有订阅的观察者的onComplete事件)? 最佳答案 在目前的形式中,你不能。您的可观察对象源自未完成的来源,因此它本身无法完成。您可以做的是使用完成条件扩展此源。这会像这样:varend$=newRx.Subject();varobservable=Rx.Observable.fromEvent(docum

javascript - Observable 与 Subject 和 asObservable

我正在学习RxJs,我正在寻求对我的假设的确认或纠正。我正在尝试在我可以在我的服务类的不同位置使用.next()的服务中使一个公共(public)只读可见。我想知道这是否是正确的方法:privatemyObservable=newSubject();publicmyObservable$:Observable=this.myObservable.asObservable();用户可以订阅myObservable$我可以使用myObservable.next(...);它工作得很好,但我有足够的经验知道我可能只是一个不知情的白痴(RxJS是巨大的)。对于所述用例,这是正确的模式和正确的对

javascript - 我所有的 Observables 错误 'takeUntil is not a function'

出于某种原因,我无法在我的任何可观察对象上使用takeUntil方法。我的IDE(VisualStudioCode)在我编码时将其显示为有效方法,并且编译良好(从typescript),但是当我运行它时,我得到takeUntilisnotafunction在我的任何observables上。我使用的是rxjs版本5.3.0。我可以通过多种方式实现它,但这可能是最直接的:letsubject:BehaviorSubject=newBehaviorSubject({});letunsubscribe:Subject=newSubject();subject.takeUntil(unsubs

javascript - RxJs 从结果 Promise 创建 Observable

我是RxJs的新手,我想了解将Rx与Promises结合使用的最佳方式是什么。我想要创建的是Angular中的一个服务,它充当事件调度程序模式,并在promise完成后发出一个事件。我还需要的是,如果没有(事件)订阅者,则永远不会调用可观察对象。我最不想发生的事情是,可观察对象的任何后续订阅者都会获得相同的结果,而不会触发对服务器的另一个请求。我在这里设法实现了自己的解决方案://...CountryServicecodevarCOUNTRIES_LOADED=Rx.Observable.create(function(observer){$http.get('/countries')

javascript - 下划线 _.intersection() - 怎么做?

vararr=[];arr.push(["A","B"]);arr.push(["A","C"]);arr.push(["C","D"]);如何将这个数组数组传递给_.intersection()?因为_.intersection(arr)将不起作用... 最佳答案 也许_.intersection.apply(_,arr)? 关于javascript-下划线_.intersection()-怎么做?,我们在StackOverflow上找到一个类似的问题: h

javascript - Object.observe——并非所有主流浏览器都支持,我可以使用什么作为替代方案?

我有一个在Chrome中运行的函数,它会在名为finishedLoading的变量更改值时打印到控制台。Object.observe(finishedLoading,function(id,oldval,newval){console.log('finishedloading'+id+'wentfrom'+oldval+'to'+newval);}这不适用于许多其他现代浏览器(例如firefox、safari)。有没有我可以使用的替代方案会得到更好的支持?谢谢! 最佳答案 更广泛支持的方法可能是Object.defineProper