2017-01-20 66 views
1

正确的值当我尝试通过使用此代码来获得“isFullVersionBought”的价值 - 一切都是完美的:获取的变量

inApp1.get('isFullVersionBought').then((data) => {console.log("What is the value?: ", data)}); 

此代码返回我“什么是价值?:”, '是'

但是,当我使用此代码的变量 - 它返回了我错误的值。 这是我的变量的代码(+控制台):

let fullversionbought = inApp1.get('isFullVersionBought').then((data) => {data}); 
console.log(fullversionbought); 

此代码返回我{_45:0,_81:1,_65: '是的',_54:空}

为什么? 如何获得值'是'?

+1

阅读关于JavaScript的承诺,以了解是怎么回事:) – maxpaj

回答

1

在请求完成之前,您正在设置fullversionbought,以便记录一个不完整的值。试试这个

inApp1.get('isFullVersionBought').then((data) => { 
    console.log(data); 
    let fullversionbought = data; 
    // Do whatever you need with this value now that the req completed. 
}); 
+0

但我怎么可以使用这个变量**“fullversionbought” **这个功能么?我尝试了这个代码,但它不起作用:'inApp1.get('isFullVersionBought')。then((data)=> {fullLooky =在许多js文件中,我需要它可以在此功能之外使用。 –

+0

就像@maxpaj在你的问题的评论中所说的那样,绝对读到关于JS承诺的文档。不能保证fullversionbought会像您期望的那样拥有一个布尔值(如果网络请求失败,会发生什么情况?)。通过使用承诺,您可以使用完整处理程序包含完整版本的价值,或者在您的其他任何js文件中缺乏该值。 –