大佬们我这个异步改为同步应该怎么改呢,下边return里边拿不到数据

onShareAppMessage: function() {
                var that = this;
                var share = {};
                that.$R.post('Api&a=archivesList&_ajax=1', {apiArclist_1:'ekey=1&typeid=78'}).then(res => {
                    share = res.data.apiArclist[1].data[0];
                    console.log(share.title);
                    if(!share){
                        uni.showToast({
                            title:'暂无相关数据',
                            icon:'none',
                            duration:2000
                        });
                    }
                });
                console.log(share.title);
                return {
                    title: share.title,
                    path: '',
                    imageUrl: share.litpic,
                    success: function(res) {
                        // 转发成功
                    },
                    fail: function(res) {
                        // 转发失败
                    }
                }

            },
阅读 1.5k
2 个回答

onShareAppMessage里不可以异步,async都不行,改流程吧,接口提前调

onShareAppMessage可以使用async,你可能需要加loading
还有需要注意:没有fail和success方法了

async onShareAppMessage() {
      var that = this;
      uni.showLoading();
      var share = await that.$R
        .post("Api&a=archivesList&_ajax=1", {
          apiArclist_1: "ekey=1&typeid=78"
        })
        .then(res => {
          return res.data.apiArclist[1].data[0];
        });
      uni.hideLoading();
      if (!share) {
        uni.showToast({
          title: "暂无相关数据",
          icon: "none",
          duration: 2000
        });
        return;
      }
      console.log(share.title);
      return {
        title: share.title,
        path: "",
        imageUrl: share.litpic,
       
      };
    }
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题