Я немного новичок в Observables
в Angular2
, Из того, что я понимаю, они будут излучать изменения в subscribers
всякий раз, когда есть изменение в данных. Я действительно получаю первый ответ от моего php
бэкэнд на начальный прогон.
Но если я изменю или обновлю вещи в базе данных
the observable cant fetch the next changes again. It will only update upon refresh
Мой сервис
checkField(_options : T):Observable<any>{
this.options = _options;
let x = this.serialize(this.options);
let headers = new Headers({'Content-Type':'application/x-www-form-urlencoded'});
let options = new RequestOptions({ headers: headers});
return this.http.post("http://zodiark.co.nf/php/check_id.php" , x , options).map(this.extractData).catch(this.handleError);
}
Мой Компонент
regChecker.checkField(this.checkerOption).subscribe(
(data) => { this.testObserver = data; console.log(this.testObserver)
})
Мне просто нужно разъяснение, если это возможно.
PS. Заранее спасибо.
Observables используются во многих местах, есть много способов понять Observables, но что вы делать Необходимо понимать, что HTTP-запросы возвращают Observable, который завершается при ответе (или при ошибке), он не может знать, когда ваш бэкэнд решает «отправить» больше данных, потому что он просто не построен таким образом, только ваш бэкэнд отвечает на запросы.
Из-за этого использование observables для HTTP-запросов почти такое же, как использование Promises для HTTP-запросов, за исключением Observables, которые можно отменять.
В других случаях использования для Observables преимущество станет более ясным … Я уверен, что вы найдете много примеров с наличием наблюдаемых событий DOM или наблюдаемых значений angular2 элементов управления реактивной формы и так далее …
Надеюсь, я понял, что ты упустил, что происходит 🙂
Других решений пока нет …