안녕하세요. 이와 비슷한 것을 만들고 싶습니다.angular 2, if 문에 따라 Observables를 반환하십시오.
someFunction():Observable<Response>{
let response$ = new Observerable();
if (...){
response$ = this.http.get(url1)
}else{
response$ = this.http.get(url2)
}
return response$
}
내가 가입하면 , 내가
정의되지 않은 감사의 '구독'할 수 없습니다 오류를 받고 있어요!재산을 읽을 사전에있는 모든 도움을
EDIT --------- 이것은 이온 2와 코드 바를 사용하는 실제 기능입니다. 앱이 휴대 기기에 있는지 여부를 확인하고 URL이 팝업으로 열립니다 (소셜 로그인에 사용 예정)
일단 창이 닫히면 http.get 요청을 수행하여 토큰을 가져와야합니다 내 백엔드에서.
public social(providerName:string):Observable<Response>{
let response$ = new Observable<Response>();
let url =providerName+'/someUrl'
let authWindow;
if(window.cordova){
let authWindow= InAppBrowser.open(url, '_blank', 'location=no');
authWindow.addEventListener('loadstop', event => {
if(event.url.indexOf(`${providerName}/callback`) > -1){
authWindow.close()
}
});
authWindow.addEventListener('loaderror', event =>{
if(event.url.indexOf(`${providerName}/callback`) > -1){
authWindow.close()
}
});
authWindow.addEventListener('exit',() => {
setTimeout(()=>{
response$ = this.http.get(...)
},500)
})
}else{
authWindow = createWindow(popupUrl);
let window = Observable.interval(1000);
let pingWindow = window.subscribe(
()=>{
if(authWindow.closed){
pingWindow.unsubscribe();
response$ = this.http.get(...)
}
})
}
return response$
}
제공 한 코드 외부에서 문제가있는 것 같습니다. –
그래서이 구문 정규식이 작동한다고 말하고 있습니까? –
나는 이것이 당신이 가진 오류로 이어지지 않아야한다고 확신한다. 나는 그 오류가 어딘가에 있다고 생각한다. –