1

バックエンドに提案を照会するオートコンプリート機能を構築しており、ユーザーがAngular 5フォームコントロールに入力している間に特定の遅延が与えられた最後のクエリのみを取得したいと考えています. 現在、私のコードは次のようになります

 this.newVendorForm.get('address').valueChanges.pipe(delay(3000)).subscribe(
  address => {
    this.geocodeApi.getAddressSuggestions(address)
      .subscribe(
        response => {
          console.log('address suggestions');
          console.log(response);
          this.addressSuggestions = response;
        },
        error => {
          console.log('error getting address suggestion');
          console.log(error);
        }
      )
  }
);

これは機能しますが、3000 ミリ秒後に入力された文字ごとにクエリを作成します。たとえば、'test' は 3000 ミリ秒後に ['t', 'te', 'tes', 'test'] をクエリします。3000 ミリ秒の遅延後に valueChanges から最後の変更 (つまり、「テスト」) を取得して、サブスクライブするにはどうすればよいですか? 助けてくれてありがとう

4

1 に答える 1