uni-app Api异步的情况,导致this无法正常赋值
作者:互联网
// 官方提供的办法 不能处理异步的情况,this不能赋值
uni.request({
url: 'https://www.example.com/request', //仅为示例,并非真实接口地址。
data: {
text: 'uni.request'
},
header: {
'custom-header': 'hello' //自定义请求头信息
},
success: (res) => {
console.log(res.data);
this.text = 'request success';
}
});
解决方案:
getVideoProblemList() {
var token=uni.getStorageSync("token")||""
var jwtToken=uni.getStorageSync("jwtToken")||""
// let _this = this
uni.request({
url: URL.VIDEO_PROBLE_MQUERY_PROBLEMS,
data: {type:this.type},
method:"GET",
header: {
token,
Authorization:"Bearer "+jwtToken
},
// this不能附上值
// success(res) {
// console.log(res.data.data)
// this.testList = res.data.data
// console.log(this.testList)
// }
// this不能附上值
// success:function(res){
// console.log(res.data.data)
// this.testList = res.data.data
// console.log(this.testList)
// }
// 这样写this能附上值
// success:(res) =>{
// console.log(res.data.data)
// this.testList = res.data.data
// }
// 加bind能附上值
// success:function(res){
// console.log(res.data.data)
// this.testList = res.data.data
// console.log(this.testList)
// }.bind(this)
// _this= this 也能赋值
// success:function(res){
// console.log(res.data.data)
// _this.testList = res.data.data
// console.log(_this.testList)
// }
})
// this能附上值
// .then(res=>{
// console.log(res[1].data.data)
// this.testList = res[1].data.data
// console.log(this.testList)
// })
},
getVideoProblemList(call) {
var token=uni.getStorageSync("token")||""
var jwtToken=uni.getStorageSync("jwtToken")||""
// let _this = this
uni.request({
url: URL.VIDEO_PROBLE_MQUERY_PROBLEMS,
data: {type:this.type},
method:"GET",
header: {
token,
Authorization:"Bearer "+jwtToken
},
success(res) {
console.log(res.data.data)
typeof call == "function" ? call(res.data.data):" "
}
})
},
this.getVideoProblemList(res=>{
this.testList = res
console.log(this.testList)
})
标签:console,log,res,app,testList,Api,uni,data 来源: https://blog.csdn.net/qq_37550440/article/details/118639991