[解決済み] angular 2の非同期バリデータにデバウンス時間を追加するには?
2023-05-20 14:51:48
質問
これは私の非同期バリデータですが、デバウンス時間がありません。
static emailExist(_signupService:SignupService) {
return (control:Control) => {
return new Promise((resolve, reject) => {
_signupService.checkEmail(control.value)
.subscribe(
data => {
if (data.response.available == true) {
resolve(null);
} else {
resolve({emailExist: true});
}
},
err => {
resolve({emailExist: true});
})
})
}
}
どのように解決するのですか?
Angular 4+、使用方法
Observable.timer(debounceTime)
:
izupet 'さんの回答は正しいのですが、Observableを使用するとさらにシンプルになることに注目すべきです。
emailAvailability(control: Control) {
return Observable.timer(500).switchMap(()=>{
return this._service.checkEmail({email: control.value})
.mapTo(null)
.catch(err=>Observable.of({availability: true}));
});
}
angular 4 がリリースされて以来、新しい値がチェックのために送信されると、Angular は
Observable
からの購読を解除します。
setTimeout
/
clearTimeout
のロジックを自分で作る。
を使って
timer
とAngularの非同期バリデータの振る舞いを使って、RxJSの
debounceTime
.
関連
-
[解決済み] async」と「await」の使い方とタイミング
-
[解決済み] Reduxの非同期フローになぜミドルウェアが必要なのか?
-
[解決済み] 非同期Task<T>メソッドを同期的に実行するにはどうしたらいいですか?
-
[解決済み] AngularJS 。非同期データでサービスを初期化する
-
[解決済み】async-awaitが追加のスレッドを作成しないのであれば、どのようにしてアプリケーションの応答性を高めているのでしょうか?
-
[解決済み] .tsファイルはTypeScriptのコンパイルの一部ですが、使用されていませんという警告を消すには?
-
[解決済み] Angularで、コントロールが作成された後、FormControlにバリデータを追加する方法は?
-
[解決済み] RxJSのmap演算子でエラーを出す方法 (angular)
-
[解決済み] Karma/Jasmineのテストで「[object ErrorEvent] thrown」エラーが発生した場合、どのようにデバッグすればよいですか?
-
[解決済み] angular keyvalue pipe sort properties / iterate in order (アンギュラーキーバリューパイプソートプロパティ / イテレートオーダー)
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] Angular Materialでのデフォルトのソート - ヘッダーのソート
-
[解決済み] Error: モジュールによってインポートされた予期しない値 'undefined'。
-
[解決済み] FormGroupから単一の値を取得する方法
-
[解決済み] AngularでFormGroupに動的にaddControlを追加する
-
[解決済み] angularで「タイプ 'EventEmitter' は一般的ではありません」ERROR。
-
[解決済み] ngFor を使用して、Typescript Enum を文字列の配列として反復処理するにはどうすればよいですか?
-
[解決済み] Angular : ルートへの手動リダイレクト
-
[解決済み] Angular 2 - ルーティング - ObservableでCanActivateする。
-
[解決済み] Angular2 Tutorial (Tour of Heroes)です。モジュール 'angular2-in-memory-web-api' を見つけることができません。
-
[解決済み] Angularのビルドと実行方法