这两天遇到个很棘手的问题 所有的request 赋值方法都试过了 就是同样的方法 有的时候就行 有的时候不行 如果不行的话什么方法都赋值不成功 在request success里面 可以赋值成功 出了request 数据复原 有知道为什么的嘛
onLoad(e) {
_self=this
that=this //都是全局变量
filesrc=[];
this.mession = JSON.parse(decodeURIComponent(e.mession));
console.log(e.index2);
_self.request().then(data => {
// console.log("我是正确数据"+data)
filesrc=data //赋值成功
// uni.redirectTo({
// url:"/pages/mesiondetail/mesiondetail"
// })
console.log(filesrc) //输出值正常
// uni.setStorageSync('messionfile',data)
})
// .catch(err => {
// console.error(err)
// })
console.log(filesrc) // 数据复原 赋值失败
// _self.messionfile=uni.getStorageSync('messionfile')
// uni.clearStorageSync('messionfile')
// console.log(_self.messionfile)
},
request方法
request(){
return new Promise((resolve, reject) => {
uni.request({
url: "http://localhost:8080/messionfile/getfile?messionid="+this.mession.messionid,
success: res => {
resolve(res.data)
},
fail: err => {
reject(err)
}
})
})
},
因为request是异步的,而在success里面是同步的,如果放在外面如果请求没有响应,下面的代码一样继续执行,所以会赋值失败