В моем компоненте у меня есть функция сохранения, как показано ниже:Угловое 2 значение от службы не доступны за пределами подписываться функции
save() {
var result;
//For updating task
if (this.task.AllTaskId) {
if (this.task.AssignedToCode == null) {
this.task.AssignedToCode = "All";
}
this.task.CreatedDate = new Date();
this.task.CreatedBy = this.empcode;
result = this._tasksService.updateTask(this.task).subscribe(
res => {
this._router.navigate(['/regtask'])
}
)
}
//For Adding new task
else {
if (this.task.AssignedToCode == null) {
this.task.AssignedToCode = "All";
}
this.task.CreatedDate = new Date();
this._tasksService.addTask(this.task)
.subscribe((ntask) => {
this.emitntask.emit(ntask);
this._router.navigate(['/regtask']);
this.temp = ntask.allTaskId;
console.log(this.temp);
})
debugger;
console.log(this.temp);
}
this.compform.reset();
}
Если вы посмотрите на состояние еще функции сохранения, когда я вхожу темп значение в функция .subscribe(), он показывает мне значение в моем журнале, но когда я пытаюсь войти в такое же значение вне функции .subscribe(), он показывает мне неопределенное значение, как показано ниже:
Может ли кто-нибудь предложить мне, что делать и почему is.temp 'становится недоступным, пока он доступен мне в функции .subscribe?
Возможный дубликат [Как вернуть ответ от асинхронного вызова?] (Http://stackoverflow.com/questions/14220321/how-do-return-the-response-from-an-asynchronous- вызов) – jonrsharpe