import { fromEvent } from 'rxjs';
import { debounceTime,map,distinctUntilChanged,switchMap} from 'rxjs/operators'; // merge
const input = document.querySelector('#search');
const suggestList = document.querySelector('#suggest-list');
const input$ = fromEvent(input, 'input');
input$.pipe(
filter(e => e.target.value.length > 1),
debounceTime(300),
distinctUntilChanged(),
switchMap(
e => from(getSuggestList(e.target.value)).pipe(retry(3))
)
).subscribe((val)=>console.log(val))
function getSuggestList(val){
return new Promise(function(resolve, reject){
//異步操做
setTimeout(()=>{
resolve([
{
name:'張三1',
age:21
},{
name:'張三2',
age:22
},{
name:'張三3',
age:23
},{
name:'張三4',
age:24
},{
name:'張三5',
age:25
}
]);
},2000)
});
}