2017-03-29 1 views
0

Ich versuche, das Versprechen lösen Ergebnis, wenn es das Versprechen in der ersten Funktion (topomise) beendet. Deshalb, wie Sie unten sehen werden, erstelle ich eine weitere Promise.resolve (pageData) mit dem Wert vom letzten, um dann zu versuchen, den Wert in meiner get-promise-Funktion zu erhalten.Holen Sie sich das Ergebnis von Versprechen in einer anderen asynchronen Funktion zu lösen

Dies ist mein Code:

function topromise(param){ 
 
    let pageData; 
 
    new Promise((resolve, reject)=>{ 
 
    resolve(param) 
 
}) 
 

 
.then((value)=>{ 
 
    console.log(value) 
 
    return "hola" 
 
}) 
 

 
.then((value)=>{ 
 
    console.log(value) 
 
    pageData= "bon jour" 
 
    return getpromise(Promise.resolve(pageData)) 
 
}) 
 

 
} 
 

 

 
topromise("hello") 
 

 
function getpromise(value){ 
 
    .then(value=> console.log(value)) 
 
    //I want to get the pageData result from resolve 
 
}

+0

könnten Sie bitte das Snippet zu etwas vernünftigeren aktualisieren. Im Moment würde dies auf 'function toPromise() {return Promise.resolve (" bon jour ")}' hinauslaufen. Zu deinem Versuch: 'pageData' zu verwenden, funktioniert nicht; weil asynchron. Du hast mit Echtzeit zu tun. Ohne das Versprechen werden Sie nie wissen, wann 'pageData' tatsächlich einen Wert enthält. – Thomas

+0

Sind Sie sicher, dass Ihr getpromise-Methodenkörper in Ordnung ist? –

Antwort

1

Ihre topromise() Funktion ein return und Ihre getpromise Funktion fehlt scheint in der Mitte eines Methodenaufruf zu beginnen.

Es ist sehr unklar, was Sie zu tun versuchen, aber vielleicht werden Sie für so etwas gehen. Dies funktioniert Code:

function topromise(param){ 
 
    let pageData; 
 
    
 
    return Promise.resolve(param) 
 
    .then((value)=>{ 
 
    console.log(value) 
 
    return "hola" 
 
    }) 
 
    .then((value)=>{ 
 
    console.log(value) 
 
    pageData = "bon jour" 
 
    return pageData; 
 
    }) 
 
} 
 

 

 
getpromise(topromise("hello")) 
 

 
function getpromise(value){ 
 
    value 
 
    .then(result => console.log(result)) 
 
}

Verwandte Themen