uni-app uni.request 赋值问题

这两天遇到个很棘手的问题 所有的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里面是同步的,如果放在外面如果请求没有响应,下面的代码一样继续执行,所以会赋值失败