我正在努力将json从服务层传递给组件,然后按顺序调用函数。这就是我已经完成的事情:
users.service.ts
addUser(user: User) {
return this.http.post('http://localhost:8080/user/create', user).map(res => res.json());
}
然后是组件层:
async onSubmit(model) {
await new Promise(resolve => {
setTimeout(() => {
this.submitted = true;
this.usersService.addUser(model).subscribe(data => this.savedModel = data);
resolve();
}, 500);
});
this.sendNotification();
}
@Output() notifyParent: EventEmitter<any> = new EventEmitter();
sendNotification() {
this.notifyParent.emit(JSON.stringify(this.savedModel));
}
savedModel
是undefined
。我怎样才能解决这个/我做错了什么?
编辑:组件的顶部是:
@Component({
selector: 'app-user-form',
templateUrl: './user-form.component.html',
styleUrls: ['./user-form.component.css']
})
export class UserFormComponent implements OnInit {
groups: Group[];
model: User;
savedModel;
答案 0 :(得分:1)
似乎addUser
可能需要超过500秒,而不是创建一个人工计时器,您可以在用户服务完成时发出。
onSubmit(modal) {
this.usersService.addUser(model).subscribe(data => {
this.savedModel = data;
this.sendNotification(); // or just .emit here
});
}
你也不需要将它包装在Promise或任何东西中。