收藏
回答

wx.cloud.uploadFile 没有任何反应

问题模块 框架类型 问题类型 终端类型 AppID 基础库版本
云开发 小程序 Bug 微信iOS客户端 wxfcd7aae8e7fa31f9 2.7.x 2.8.x 2.9.x 都不好使

在小程序端调用 wx.cloud.uploadFile 没有任何结果。

用 iPhoneX 和 iPhoneSE 都不好使,success、fail、complete 均不执行(开发版、体验版),但是在开发工具和真机调试的时候可以正常运行。

wxml:

<button bindtap="handleAwait">await (iphone 上的 bug 在这里)</button>

<button bindtap="handlePromise">promise</button>


<view>上面两个按钮,都触发一个选择图片的事件,选好之后上传。</view>
<view>在开发者工具里是没有问题的。</view>
<view>但是在 iPhoneX 和 iphoneSe 上:</view>
<view>await 按钮上传文件完全没任何反应,success、fail、complete 都不被调用</view>
<view>但是,iphone 使用真机调试时,又没有任何问题了</view>

js:

Page({
  async handleAwait() {
    let uploaded = await getPhoto();
    let path = uploaded.tempFilePaths[0];
    let result = await uploadFile(path);
    wx.showToast({ title: result.errMsg })
  },
  handlePromise() {
    getPhoto().then(async uploaded => {
      let path = uploaded.tempFilePaths[0];
      let result = await uploadFile(path);
      wx.showToast({ title: result.errMsg })
    })
  }
})
 
function getPhoto() {
  return new Promise(success => {
    wx.chooseImage({
      success
    })
  })
}
 
function uploadFile(filePath) {
  return new Promise(success => {
    wx.cloud.uploadFile({
      cloudPath: '1.jpg',
      filePath,
      success
    })
  })
}


目前只有用 promise 的代替方案,希望官方团队能尽快解决,给出反馈。

即使解决不了,也希望尽快给出原因,让其他开发者有效地避开这个问题,或者说为什么这里用 promise 就可以,或者为什么只有在 iPhone 上不可以。

最后一次编辑于  11-29
回答关注问题邀请回答
收藏

4 个回答

  • 邓坤力
    邓坤力
    12-02

    fail, 也传一下,看看错误信息呢

    12-02
    赞同
    回复 1
    • 韦现法
      韦现法
      12-02
      上面代码只是复现一下 bug,项目里的代码是由 fail 和 complete 的,都不被执行
      12-02
      回复
  • Snow Beat Rain
    Snow Beat Rain
    2天前

    谢邀,抱歉 暂时无法帮助您

    2天前
    赞同
    回复
  • 老张
    老张
    12-02

    先在这两款机型上,调试异步的wx.cloud.uploadFile,不要用到任何promise或者async

    12-02
    赞同
    回复 2
    • 韦现法
      韦现法
      12-02
      好像只能这样了
      12-02
      回复
    • 韦现法
      韦现法
      12-02
      没有 async 还可以,没有 promise 太烦了,[手动捂脸哭]
      12-02
      回复
  • 范
    11-29

    谢邀,你说的这个问题还没遇到过😂,不知道怎么帮你,抱歉

    11-29
    赞同
    回复
问题标签