從 Typescript promise 返回字串值
好吧,這裡應該有一些簡單的 Typescript 代碼。至少在我腦海中是這樣的……
public showDialog(theNickname: string): string {
var req = {
method: 'POST',
url: '/Q/GetUserDetails',
data: { nickname: theNickname }
}
this.$http(req).then((response) => {
var c = "Nickname: " + response.data.Nickname + "<br/>";
c = c + "Score: " + response.data.Score + "<br/>";
c = c + "Followers: " + response.data.Followers + "<br/>";
return c;
});
}
當然,它沒有返回字串值,因為它是以 Promise 的形式返回的。我不想使用 timeout 函數。如何才能返回字串值?它是從 HTML 上的 Angular 函數調用的。如果我改變
public showDialog(theNickname: string): string {
到
public showDialog(theNickname: string): any {
它仍然無法運作。我正在 UI.Bootstrap 的 Popover 中使用這段程式碼。
謝謝!
答案#1
Paleo 的回答是正確的,但你可以更厲害,使用 Async/Await:
async function showDialog(theNickname: string): Promise<string> {
const req = {
method: 'POST',
url: '/Q/GetUserDetails',
data: { nickname: theNickname }
}
const response = await this.$http(req);
return `Nickname: ${response.data.Nickname
}<br/>Score: ${response.data.Score
}<br/>Followers: ${response.data.Followers}<br/>`;
}
async function caller() {
const message = await showDialog("TEST");
alert(message);
}
在這裡查看
