La restituzione di un valore di stringa da un Dattiloscritto promessa

OK, qui ci dovrebbe essere qualche semplice Script di codice. Nella mia mente comunque…

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;               

        });

    }   

Naturalmente, non è di restituire il valore di stringa viene restituito come una promessa. Non voglio utilizzare una funzione di timeout. Come posso restituire il valore di stringa? Viene chiamato da un Angolare in funzione del html. Se cambio

public showDialog(theNickname: string): string { 

per

public showDialog(theNickname: string): any { 

ancora non funziona. Sto usando questo codice in una interfaccia utente.Bootstrap Popover.

Grazie!

InformationsquelleAutor spankymac | 2017-04-19

 

One Reply
  1. 3

    Paleo risposta è corretta, ma potrebbe essere anche awesomer e utilizzare 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);  
    }

    Check it out qui

    • Si usa async / await in produzione per l’applicazione frontend? Il codice compilato (utilizzando promesse) sembra complicato…
    • Può sembrare complicato @paleo, ma è matematicamente dimostrato di funzionare. Io la uso in prod senza problemi.

Lascia un commento