问题描述
我希望函数“ getRandomSave”返回一个异步值,这就是为什么我使用setTimeout的原因,它在控制台中可以正常工作,但是我不能使其返回控制台中显示的值。
服务中的
: getRandom(length){
let jsonlength = length
let a = 0;
let randomNumber = new Array()
var myInterval = setInterval(function(){
a++
if (a > jsonlength) {
this.randomNumber = randomNumber;
clearInterval(myInterval);
}else{
randomNumber.push(Math.ceil(Math.random()*10))
}
},.1)
return new Promise((resolve)=>{
setTimeout(()=>{resolve(randomNumber)},1000)
})
.then(x =>{return x})
}
getRandomSave(){
setTimeout(function(){
return this.randomNumber
},200)
}
执行时(在组件中):
randomNumber(){
let accesoriosJsonLength:number = this.accesoriosJson.length
if (this.browserRefresh) {
this.accesoriosService.getRandom(accesoriosJsonLength)
.then(valor => console.log(valor))
}else{
this.accesoriosService.getRandomSave()
console.log(this.accesoriosService.getRandomSave()); //undefined
}
}
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)