微信小程序云开发上传图片成功了,插入数据库的url是空的

问题:

在这里插入图片描述
创建圈子时,上传封面,有时创建成功之后封面上传到云存储中,插入到云数据库中的圈子数据中的封面url时空的,导致没有封面

原因:我之前写的是读取图片后就上传,上传成功后返回url,再拿到这个url传给创建圈子的云函数,由于上传图片需要时间较长,云函数是异步执行的,所以图片没上传完,没有返回url就调用了创建圈子的云函数,导致数据库中的url为空,图片却能成功上传到云存储中。

在这里插入图片描述

解决:在上传图片成功的回调函数中调用创建圈子的云函数,这样就能保证拿到返回的url之后再创建圈子了。

		console.log('创建圈子');
        console.log(this.data);
        //先上传图片,再创建圈子,否则会出现图片未上传完就创建了圈子,导致封面为空
        wx.cloud.uploadFile({
            cloudPath: 'circleCover/' + Date.now() + ".jpg",
            filePath: this.data.image[0].url
        }).then(res => {
            // console.log('上传图片成功', res);
            this.setData({
                fileId: res.fileID
            })
            // 校验完成,调用云函数创建圈子
            wx.cloud.callFunction({
                name: 'createCircle',
                data: {
                    circle_name: this.data.circleInfo.circleName,
                    circle_desc: this.data.circleInfo.circleDesc,
                    image: this.data.fileId,
                    join_people: 1, //圈子参加人数
                    clock_count: 0, //打卡记录数
                },
            }).then(res => {
                // console.log('云函数调用成功');
                // console.log(res);
                wx.showToast({
                    title: '创建成功',
                })
                utils.sleep(500)
                wx.navigateBack({
                    delta: 0,
                })
            }).catch(res => {
                console.log('云函数调用失败');
                console.log(res);
            })
        }).catch(err => {
            console.log('上传图片失败');
            console.log(err);
        })
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值