1. // html
    2. <input id="search" type="text" placeholder="请输入搜索内容..." />
    1. import { fromEvent, from, throwError } from "rxjs"
    2. import { debounceTime, distinctUntilChanged, map, switchMap, catchError } from "rxjs/operators"
    3. import axios from "axios"
    4. const search = document.getElementById("search")
    5. fromEvent(search, "keyup")
    6. .pipe(
    7. debounceTime(700),
    8. map(event => event.target.value),
    9. distinctUntilChanged(),
    10. switchMap(keyword =>
    11. from(
    12. axios.get(`https://j1sonplaceholder.typicode.com/posts?q=${keyword}`)
    13. ).pipe(
    14. map(response => response.data),
    15. catchError(error => throwError(`发生了错误: ${error.message}`))
    16. )
    17. )
    18. )
    19. .subscribe({
    20. next: value => {
    21. console.log(value)
    22. },
    23. error: error => {
    24. console.log(error)
    25. }
    26. })