Açısal 2'de HTTPRequest nasıl iptal edilir?Açısal 2'de HTTPRequest nasıl iptal edilir?
Sadece istek vaatlerini nasıl reddedeceğimi biliyorum. http://www.syntaxsuccess.com/viewarticle/angular-2.0-and-http
Açısal 2'de HTTPRequest nasıl iptal edilir?Açısal 2'de HTTPRequest nasıl iptal edilir?
Sadece istek vaatlerini nasıl reddedeceğimi biliyorum. http://www.syntaxsuccess.com/viewarticle/angular-2.0-and-http
Burada unsubscribe
let sub = this.http.get(url, {headers: reqHeaders})
.subscribe(
(res) => {
res = res.json();
this.currentLoading.delete(url);
this.cache.set(url, res);
resolve(res);
}
);
sub.unsubscribe();
Daha bilgi çağırabilir.
import { Injectable } from '@angular/core'
import { Http } from '@angular/http'
import { Observable } from 'rxjs/Observable'
import { Subscriber } from 'rxjs/Subscriber'
@Injectable()
export class SomeHttpServiceService {
private subscriber: Subscriber<any>
constructor(private http: Http){ }
public cancelableRequest() {
let o = new Observable(obs => subscriber = obs)
return this.http.get('someurl').takeUntil(o)
.toPromise() //I dont like observables
.then(res => {
o.unsubscribe
return res
})
}
public cancelRequest() {
subscriber.error('whatever')
}
}
Bu elle isteği iptal sağlar:
Partiye geçif (this.subscription) {
this.subscription.unsubscribe();
}
this.subscription = this.http.get('awesomeApi')
.subscribe((res)=> {
// your awesome code..
})
yapabilirsiniz kullanım aşağıdaki basit çözüm:
return new Promise((resolve, reject) => {
this.currentLoading.set(url, {resolve, reject});
this.http.get(url, {headers: reqHeaders})
.subscribe(
(res) => {
res = res.json();
this.currentLoading.delete(url);
this.cache.set(url, res);
resolve(res);
}
);
});
' elden hakkında soru kapatmak olacak - Bu cevap –
olmalıdır? – tom10271
sonra() '' yakalamak() '' o '.toPromise()' yöntemiyle yapılması mümkün mü gibi o zaman TGH en birinin @ işaretlemeniz gerekir doğruysa bu kabul cevap –
Biraz ama burada benim alabilir. Bazen sayfadaki bir sonuçta değişiklik yapacak bir gözlem veya sözle sonuçlanırım. Eğer istek otomatik olarak başlatılmışsa (kullanıcı x millis için bir alana herhangi bir şey yazmamışsa) isteği iptal edebilmek güzeldir (kullanıcı aniden tekrar bir şeyler yazıyor).
takeUntil ayrıca basit bir şekilde çalışmalıdır. zaman aşımı (Observable.timer) belirlersiniz https://www.learnrxjs.io/operators/filtering/takeuntil.html
herhangi bir önceki isteğin yanıtları iptal edecek olan gözlenebilir üzerinde SwitchMap kullanmak ve sadece en son talep edebilirsiniz aradığınızı ise:
https://www.learnrxjs.io/operators/transformation/switchmap.html
Bu cevap beta.15'te artık geçerli değil. Şu anda Gözlemlenebilir'de “abonelikten çıkma” yöntemi yoktur. – tom10271
"abonelikten çık" yerine "dispose" ile değiştirildi. – Menello
Angular2 RC.5 kullanıyorum ve 'aboneliği iptal et' mevcut (rxjs sürüm 5.0.0-beta.6). Yorumlar yapıldıktan sonra belki geri yüklendi? Tutarsızlığın nereden geldiğinden emin değilim. –