2016-10-24 32 views
3

根據官方的文檔,我可以用一個主題是這樣的: docs如何解釋RxJS除有人用角1.X背景

不過,我覺得這是一個相當的理論解釋。

我在Angular 1.X中有很強的背景。

有人可以通過將它與Angular 1.X中的內容進行比較來描述我,概念「主體」嗎?

+1

我不認爲它與AngularJS的東西具有可比性。這是新的,我會建議閱讀網站上的介紹。 http://reactivex.io/intro.html – koningdavid

回答

0

$ q.defer()非常接近。
澄清,2等份的代碼。

//written with $q.defer() 
function doWorkAsync() { 
    var defer; 
    defer = $q.defer(); 
    getStuff().then(function() { 
     defer.resolve('finished here'); 
    } 
    return defer.promise; 
} 
... 
doWorkAsync().then(showResults); 


//written with subject() 
function doWorkAsync() : Observable<string> { 
    let subject$ = new AsyncSubject<string>(); 

    getStuff().then(function() { 
     subject$.next('finished here'); 
     subject$.complete(); 
    } 
    return subject$; 
} 
... 
doWorkAsync().subscribe(showResults); 

總結:

defer.promise〜=觀察到。
defer.resolve & & defer.reject〜= 觀察者。

0

我發現這個解釋相當不錯:

可觀察到的是等,其中的元素及時到達延遲陣列。

您可以使用運營商,如.forEach().map()(和其他人)。

它還具有相似之處Promise,但可以在subscribe()(類似於then()發射0以上的值,但只要求傳遞給then()一旦回調,而傳遞給subscribe()回調可以多次調用發射極解析觀察到的前)。

又見Angular - Promise vs Observable

1

主題,在某種程度上,就像使者

王國向使者發送消息,通知其盟友在其邊界發生攻擊。盟友告訴信使,他們會派出軍隊幫忙。

回來更技術性的語言:

主題是雙向變量。您可以通過subscribe來接收它更新時的更新,並通過調用next並更改變量並傳遞參數。