angular7 Rxjs 非同步請求

2022-03-14 19:29:03 字數 2693 閱讀 6380

promise 的建立之後,動作是無法撤回的。observable 不一樣,動作可以通過 unsbscribe() 方 法中途撤回,而且 observable 在內部做了智慧型的處理。

promise 建立之後動作無法撤回

let promise = new promise(resolve =>, 2000);

});promise.then(value => console.log(value));

rxjs 可以通過 unsubscribe() 可以撤回 subscribe 的動作

let stream = new observable(observer =>, 2000);

});let disposable = stream.subscribe(value =>console.log(value));

settimeout(() =>, 1000);

如果我們想讓非同步裡面的方法多次執行,比如下面**。

這一點 promise 是做不到的,對於 promise 來說,最終結果要麼 resole(兌現)、要麼 reject (拒絕),而且都只能觸發一次。如果在同乙個 promise 物件上多次呼叫 resolve 方法, 則會拋異常。而 observable 不一樣,它可以不斷地觸發下乙個值,就像 next() 這個方法的 名字所暗示的那樣。

let promise = new promise(resolve =>, 2000);

});promise.then(value => console.log(value));

rxjs

et stream = new observable(observer =>, 1000);

});stream.subscribe(value => console.log("observable>"+value));

注意:angular6 以後使用以前的 rxjs 方法,必須安裝 rxjs-compat 模組才可以使用 map、filter 方法。

angular6 後官方使用的是 rxjs6 的新特性,所以官方給出了乙個可以暫時延緩我們不需要修 改 rsjx **的辦法。

rxjs6 改變了包的結構,主要變化在 import 方式和 operator 上面以及使用 pipe()

RxJS之過濾操作符 Angular環境

只發出源 observable 最初發出的的n個值 n count 如果源發出值的數量小於count的話,那麼它的所有值都將發出。然後它便完成,無論源 observable 是否完成。返回 observable,它只發出源 observable 發出的與前一項不相同的項。如果沒有提供 compare...

高階 Angular 元件模式 7

原文 use content directives因為父元件會提供所有相關的 ui 元素 比如這裡的 button 所以 toggle 元件的開發者可能無法滿足元件使用者的一些附加需求,比如,在乙個自定義的開關控制元素上增加 aria 屬性。如果 toggle 元件能夠提供一些 hooks 方法或指...

Angular7上手體驗

檢視當前你的node版本可以在cmd中輸入 開發工具強烈推薦 用cli命令建立 ng7demo 這裡前面我用ng7 demo的時候報錯 應該是不能用下劃線 這裡誇獎下,7加入了cli prompts 建立的時候可以選是否啟用router 及 css用scss,sass等 暫時只有這2個prompts...