formSubmit(e) {
this.setData({
modalName: null,
islogin: true,
nickName: e.detail.value.nickname,
getUseInfo: true
})
const that = this
wx.uploadFile({
filePath: this.data.avatarUrl,
header: {
'content-type': 'application/x-www-form-urlencoded'
},
name: 'file',
url: app.util.url() + 'c=entry&a=wxapp&do=ImgPost&m=gc_market',
success: (result) => {
var data = result.data
data = JSON.parse(data).data
that.setData({
imgurl: data
})
console.log(that.data.imgurl)
}
})
console.log("方法外获取imgurl",this.data.imgurl) //这里无法获取
var self = this;
wx.login({
success: function (data) {
data.code && app.util.request({
url: "entry/wxapp/GetUid",
data: {
code: data.code
},
success: function (data) {
console.log("用户openid", data.data.data.userinfo.openid)
self.setData({
getUseInfo: false,
openid: data.data.data.userinfo.openid,
});
console.log("缓存里的图片路径", this.data.imgurl)
app.util.request({
url: "entry/wxapp/UserInfoUpdate",
data: {
openid: data.data.data.userinfo.openid,
nickname: e.detail.value.nickname,
avatar: this.data.imgurl
},
success: function (data) {
console.log("保存用户信息进入数据库", data);
}
});
wx.uploadfile返回的文件路径在方法内可以打印,在方法外就无法打印了,是变量赋值不正确嘛? 图片已经上传到服务器了,方法内也可以返回文件路径
可以用miniprogram-api-promise这个npm包来解决异步请求
异步请求导致这个打印日志获取参数比上传执行要快,可以在上传后的 success 追加个打印日志就明白了。
js异步了解一下
应该和异步方法有关。