Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/vue.js/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
TypeScript中的异步响应_Typescript_Promise - Fatal编程技术网

TypeScript中的异步响应

TypeScript中的异步响应,typescript,promise,Typescript,Promise,我正在使用typescript对服务器进行查询并从中获得响应 这是我的密码: allDialogUser(objet): Promise<string> { var dialogs; this.http.post(this.serverAddress + this.chat + this.alldialoguser, objet) .toPromise() .then(data => { dialogs =

我正在使用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;
        });
}
allDialogUser(objet):承诺{
变量对话框;
this.http.post(this.serverAddress+this.chat+this.alldialoguser,objet)
.toPromise()
。然后(数据=>{
dialogs=data.dialogs;
返回对话框;
});
}

async ngOnInit():Promise{
this.mesConversations=等待this.api.allDialogUser({“id_offre”:1,“is_offre”:false});//修饰符
}

我知道,allDialogUser收到响应,问题是,ngOnInit似乎没有等待响应,并且mesConversations属性未定义。

allDialogUser
没有返回承诺,因此没有什么需要等待的。 您可以简单地返回创建的承诺

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});
}
函数allDialogUser(objet):承诺{
返回this.http.post(this.serverAddress+this.chat+this.alldialoguser,objet)
.toPromise()
.然后(data=>data.dialogs);
}
异步函数ngOnInit():Promise{
this.mesConversations=等待this.api.allDialogUser({“id_offre”:1,“is_offre”:false});
}
我在Typescript中创建了一个非常简单的概念证明:

但你最有可能从阅读期票中获益:


这甚至可以编译吗?因为如果我对齐括号
allDialogUser
不会返回任何内容,就像
返回对话框一样包含在箭头函数中。您可能想等待您的
http.post
-承诺返回
然后
函数的结果。您的意思是我应该放置返回对话框?我试过了,但它仍然没有等待响应。这是吗?
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});
}