对rxjs observables感到困惑

时间:2017-12-13 06:20:57

标签: rxjs

我正在阅读一段代码

import { Observable } from 'rxjs/Observable';

// PROMISE
const myPromise = new Promise((resolve) => {
  console.log('Hello from Promise');
  resolve(1);
});
myPromise.then(o => console.log(o));
myPromise.then(o => console.log(o));

// OBSERVABLE
const myObservable = Observable.create((observer) => {
  console.log('Hello from Observable');
  observer.next(1);
  observer.next(2);
  observer.next(3);
});
myObservable.subscribe(o => console.log(o));
myObservable.subscribe(o => console.log(o));

以上代码的输出是

Hello from Promise
Hello from Observable
1
2
3
Hello from Observable
1
2
3
1
1

除了最后两个,我理解一切 1 1 在最后两个1,1弹出窗口的输出中?

源代码来自本文

https://codeburst.io/rxjs-by-example-part-2-8c6eda15bd7f

请帮助。

1 个答案:

答案 0 :(得分:1)

最后1 1来自承诺

'connections' => [
    'mysql' => [
        'driver'    => 'mysql',
        'host'      => 'localhost',
        'database'  => env('DB_DATABASE', 'homestead'),
        'username'  => env('DB_USERNAME', 'homestead'),
        'password'  => env('DB_PASSWORD', 'secret'),
        'charset'   => 'utf8',
        'collation' => 'utf8_unicode_ci',
        'prefix'    => '',
        'strict'    => true
    ]
],

因为你的observable是一个同步函数,但是promise的解析是异步的,这就是它最后被调用的原因。

相关问题