收藏
回答

使用 regeneratorRuntime 报告:await is a rese

框架类型 问题类型 终端类型 微信版本 基础库版本
小程序 Bug 工具 7.0.4 2.7.4



回答关注问题邀请回答
收藏

2 个回答

  • LE
    LE
    2019-07-13



    写了

       chooseImage22: async function (){

        var that = this;

        var user_id = wx.getStorageSync('userid');

        wx.chooseImage({

          count: 6, // 默认9

          sizeType: ['compressed'], // 可以指定是原图还是压缩图,默认二者都有

          sourceType: ['album', 'camera'], // 可以指定来源是相册还是相机,默认二者都有

          success: function (res) {

            

            // 返回选定照片的本地文件路径列表,tempFilePath可以作为img标签的src属性显示图片

            //var tempFilePaths = res.tempFilePaths[0];

              var tempFilePaths = res.tempFilePaths;

              var imgs1 = that.data.imgs1;

              for (var i = 0; i < tempFilePaths.length; i++) {

                  if (imgs1.length >= 6) {

                    that.setData({

                      imgs1: imgs1

                    });

                    // return false;

                  } else {

                    //imgs1.push(tempFilePaths[i]);

                  }

            }

            that.setData({

              imgs1: imgs1

            });



            for (var s = 0; s < tempFilePaths.length; s++) { 


                let promise = new Promise((resolve,reject)=>{


                    wx.uploadFile({

                      url: app.config.apiUrl + 'Api/Poster/uploadImage',

                      filePath: tempFilePaths[s],

                      name: 'image',

                      formData:{uid:user_id,s:s},

                      success: function (res) {

                        

                          console.log('abcccdddd');

                          console.log(res);


                        var st = JSON.parse(res.data);

                        console.log(st);


                        image = st.data;

                       var img_data = that.data.img_data;

                       var imgs1 = that.data.imgs1;


                        if (imgs1.length < 6){

                          

                          img_data.push(st.data.imgurl);

                          imgs1.push(app.config.apiDomain+st.data.imgurl);

                          

                       }


                       /*if(!that.data.ttpic){  //用户没有上传图片


                           that.setData({

                                ttpic:image

                           });


                       }*/



                        that.setData({

                          //mrpic: 'https://mp.8658.cn'+image,

                          img_data: img_data,

                          //ttpic: image, //选中的自定义转发图片

                          //pic: image

                          imgs1:imgs1

                        })


                          resolve('done');

                        

                      },

                      fail:function(){


                          console.log('uploadfile-fail');


                      }

                    })


                 });


                   let result = await promise;

              


           } //end for



            

          },

          fail: function (res) {

          },

          complete: function (res) {

          }

        });

      },


    2019-07-13
    有用 1
    回复 2
    • 鲤子
      鲤子
      2019-07-13

      现在高的基础库已经直接async/await的写法了,不需要引入其他依赖包了。

      还有你这代码写的,看的都头疼,你想把上传文件封装成一个promise,那你就抽出来封装,干嘛写到业务里面,而且还把业务逻辑又都写到promise里了,你这么写还不如直接用.then写更方便了,而且你async应该是放错位置了,应该是放在wx.chooseImage的success那里。

      2019-07-13
      回复
    • LE
      LE
      2019-07-13回复鲤子
      谢谢你! 我把 async 放到你说的位置,不报告错了。
      2019-07-13
      回复
  • 鲤子
    鲤子
    2019-07-13

    async有写吗

    2019-07-13
    有用
    回复 1
    • LE
      LE
      2019-07-13
      写了
      2019-07-13
      回复
登录 后发表内容