从Promise返回一个值:[Object Object]

时间:2017-08-08 14:57:00

标签: javascript reactjs asynchronous react-native promise

反应原生发展:

我正在构建反应本机应用程序,并且我正在学习理解承诺所需的基础知识。我发现很难弄清楚为什么会发生一些事情。到目前为止,我最大的问题是,我从承诺中返回的价值是我无法获得的。这是我的功能,这是控制台日志:

功能:

getUri(){
    var data = this.apiclient.retrieveImages()
    var outside_uri = data.then((uri) => { console.log('inside => ' + uri); return uri;})
    console.log('outside => ' + outside_uri)
 }

控制台日志:

outside => [object Object]
inside => https://firebasestorage.googleapis.com/v0/b/facelapse-50017.appspot.com/o/Q…M0p7x1ROK0yIN02%2F001?alt=media&token=31de9def-cd32-4d5c-ad65-f3f65ad76685

快速观察:外部是在内部打印(可能是因为承诺的异步性质)。

1 个答案:

答案 0 :(得分:2)

解决方案:通过使我的整个函数异步并使outside_uri等待执行promise,在promise完成之前不再评估外部。

async getUri(){
    var data = this.apiclient.retrieveImages()
    var outside_uri = await data.then((uri) => { console.log('inside => ' + uri); return uri;})
    console.log('outside => ' + outside_uri)
 }