wx.cloud.uploadFile 没有任何反应
发布于 6 年前 作者 yancheng 10665 次浏览 来自 官方Issues

在小程序端调用 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 上不可以。

4 回复

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

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

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

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

回到顶部