我正在使用typescript对服务器进行查询并从中获取响应。
这是我的代码:
allDialogUser(objet): Promise<string> {
var dialogs;
this.http.post(this.serverAddress + this.chat + this.alldialoguser, objet)
.toPromise()
.then(data => {
dialogs = data.dialogs;
return dialogs;
});
}
和
async ngOnInit(): Promise<void> {
this.mesConversations = await this.api.allDialogUser({"id_offre":1, "is_offre":false}); // A MODIFIER
}
我知道 allDialogUser 收到响应,问题是 ngOnInit 似乎没等待响应,并且mesConversations属性未定义。
答案 0 :(得分:0)
allDialogUser
没有回复承诺,因此await
没有任何内容。
您只需返回创建的承诺。
function allDialogUser(objet): Promise<string> {
return this.http.post(this.serverAddress + this.chat + this.alldialoguser, objet)
.toPromise()
.then(data => data.dialogs);
}
async function ngOnInit(): Promise<void> {
this.mesConversations = await this.api.allDialogUser({"id_offre":1, "is_offre":false});
}
我在Typescript-Playground中创建了一个非常简单的概念证明:here。
但你最有可能从阅读承诺中获益: