• create
    • 签名: create(subscribe: function)
  • 使用给定的订阅函数来创建 observable 。
    • 示例
      • 示例 1: 发出多个值的 observable
      • 示例 2: 基于定时器发出偶数的 observable
  • 其他资源

    create

    签名: create(subscribe: function)

    使用给定的订阅函数来创建 observable 。

    create - 图1

    示例

    示例 1: 发出多个值的 observable

    ( jsBin |
    jsFiddle )

    1. import { Observable } from 'rxjs/Observable';
    2. /*
    3. 创建在订阅函数中发出 'Hello' 和 'World' 的 observable 。
    4. */
    5. const hello = Observable.create(function(observer) {
    6. observer.next('Hello');
    7. observer.next('World');
    8. });
    9. // 输出: 'Hello'...'World'
    10. const subscribe = hello.subscribe(val => console.log(val));
    示例 2: 基于定时器发出偶数的 observable

    ( jsBin |
    jsFiddle )

    1. import { Observable } from 'rxjs/Observable';
    2. /*
    3. 每秒自增值并且只发出偶数
    4. */
    5. const evenNumbers = Observable.create(function(observer) {
    6. let value = 0;
    7. const interval = setInterval(() => {
    8. if (value % 2 === 0) {
    9. observer.next(value);
    10. }
    11. value++;
    12. }, 1000);
    13. return () => clearInterval(interval);
    14. });
    15. // 输出: 0...2...4...6...8
    16. const subscribe = evenNumbers.subscribe(val => console.log(val));
    17. // 10秒后取消订阅
    18. setTimeout(() => {
    19. subscribe.unsubscribe();
    20. }, 10000);

    其他资源

    • create :newspaper: - 官方文档
    • 创建操作符: Create() :video_camera: :dollar: - André Staltz
    • 使用 Observable.create 来实现细粒度的控制 :video_camera: :dollar: - Shane Osbourne

    :file_folder: 源码: https://github.com/ReactiveX/rxjs/blob/master/src/internal/observable/GenerateObservable.ts