Angular 5 Formcontrol valueChanges Observable Search query by RxDB don't show result right

I follow this tutorial here https://codecraft.tv/courses/angular/http/http-with-observables/

And here my code, everything work fine, but the result not show immediately to html, when I type '1', there is a right results get from database (checked via console.log), but I have to Enter or click outside, or do something else than results will show. If I type one more char '0' the serach term is '10', the results show, but the results is results of char '1', and I Enter or click outside, the results update to results of '10'. Anyone help me

import { Component, OnInit } from '@angular/core';
import { FormBuilder, FormGroup } from '@angular/forms';
import * as RxDBTypes from './type.RxDB';
import { DatabaseService } from './database.service';
import { Observable } from 'rxjs/Observable';
import 'rxjs/add/operator/map';
import 'rxjs/add/operator/switchMap';
import { StateType } from './interface';

@Component({
  selector: 'app-root',
  templateUrl: './app.component.html'
})
export class AppComponent implements OnInit {
  private myForm: FormGroup;
  private results: Observable<StateType[]>;
  private db: RxDBTypes.RxDatabase = null;

  constructor(private fb: FormBuilder, private databaseService: DatabaseService) {
    this.myForm = fb.group({
      'search': [''],
    });
  }

  async ngOnInit() {
    this.db = await this.databaseService.get();
    this.results = this.myForm.get('search').valueChanges
      .switchMap(term => this.db.state.findOne(term).$.map(value => {
        if (value) {
          return value.ch;
        }
      }));
  }
}

html

<form [formGroup]="myForm">
  <input type="search" formControlName="search">
</form>

<ul>
  <li *ngFor="let track of results | async">
    <a href="">{{ track.name }}</a>
  </li>
</ul>