Angular 5从http post返回对象

时间:2017-12-08 23:08:09

标签: angular typescript

我正在努力将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));
}

savedModelundefined。我怎样才能解决这个/我做错了什么?

编辑:组件的顶部是:

@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;

1 个答案:

答案 0 :(得分:1)

似乎addUser可能需要超过500秒,而不是创建一个人工计时器,您可以在用户服务完成时发出。

onSubmit(modal) {
  this.usersService.addUser(model).subscribe(data => {
    this.savedModel = data;
    this.sendNotification(); // or just .emit here
  });
}

你也不需要将它包装在Promise或任何东西中。