志力兄
志力兄
  • 发布:2024-06-17 09:48
  • 更新:2024-12-13 00:08
  • 阅读:212

【报Bug】im 报 Failed to find taskCenter

分类:uniCloud

产品分类: uniCloud/App

操作步骤:

因为和多个人聊天第一次一般正常,第二次就提示 Failed to find taskCenter ,手机提示,s.setTimeout is not a function 。

预期结果:

想打开聊天页面

实际结果:

提示 Failed to find taskCenter ,手机提示,s.setTimeout is not a function 。

bug描述:

使用im 报 Failed to find taskCenter,同样的代码有的时候可以打开 聊天页面有的时候会 Failed to find taskCenter ,手机提示,s.setTimeout is not a function 。
自己代码是

//已经在login页面,保存了token和更新了设备  
uni.common.httpPost('im/getUidLianheWai', {uid:e1.item.uid}).then(async (res) => {  
            if(!res?.uniId){return uni.common.msg('客服尚未初始化');}  
            let friend_uid = res.uniId  
            const currentConversation = await uniIm.conversation.get({friend_uid});  
            uni.navigateTo({  
                url:'/uni_modules/uni-im/pages/chat/chat?conversation_id='+currentConversation.id  
            });  
        });

查到具体报错的 方法是
uni-im-co

res = await uniImCo.getConversationList({  
        maxUpdateTime,  
        limit: 30,  
        conversation_id  
      })
2024-06-17 09:48 负责人:无 分享
已邀请:
志力兄

志力兄 (作者) - 技术创造未来,编程改变世界!李志立 18633456271,你的关注是我们最大的前进动力!

看了源码是这个 地方,第一次请求可以,第二次就不可以了,模拟器网站没有关系,app运行有问题!!!

 let startTime = Date.now()  
  let res = await db.collection('uni-im-conversation').aggregate()  
    .match(matchObj)  
    .sort(sort)  
    .limit(limit)  
    // 联查获得最新的对话记录  
    .lookup({  
      from: "uni-im-msg",  
      let: {  
        id: '$id'  
      },  
      pipeline: $.pipeline()  
        .match(dbCmd.expr($.eq(['$conversation_id', '$$id'])))  
        .sort({update_time: -1})  
        .limit(1)  
        .project({  
          _id: 1,  
          type: 1,  
          body: 1,  
          to_uid: 1,  
          is_read: 1,  
          is_revoke: 1,  
          from_uid: 1,  
          create_time: 1,  
          update_time: 1,  
          conversation_id: 1,  
          action: 1  
        })  
        .done(),  
      as: 'visible_msgs'  
    })  
    // 联查获得对话的用户信息  
    // .lookup({  
    //  from: "uni-id-users",  
    //  let: {  
    //      friend_uid: '$friend_uid'  
    //  },  
    //  pipeline: $.pipeline()  
    //      .match(  
    //          dbCmd.expr($.eq(['$_id', '$$friend_uid']))  
    //      )  
    //      .limit(1)  
    //      .project({  
    //          _id: 1,  
    //          avatar_file: 1,  
    //          nickname: 1  
    //      })  
    //      .done(),  
    //  as: 'user_info'  
    // })  
    // 联查获得对话的群信息  
    .lookup({  
      from: "uni-im-group",  
      let: {  
        group_id: '$group_id'  
      },  
      pipeline: $.pipeline()  
        .match(  
          dbCmd.expr($.eq(['$_id', '$$group_id']))  
        )  
        .project({  
          user_id: 1,  
          name: 1,  
          introduction: 1,  
          notification: 1,  
          avatar_file: 1,  
          join_option: 1,  
          mute_all_members: 1,  
          type: 1  
        })  
        .done(),  
      as: 'group_info'  
    })  
    .end()  
  // log请求时间  
  // console.error('getConversationList耗时', Date.now() - startTime,startTime)  

  // // 计时  
  // startTime = Date.now()  
  // // 查每个会话的最后一条消息  
  // console.error('res.data',res.data,res.data.map(item => item.id));  
  // let getLastVisibleMsgsRes = await uniCloud.database().collection('uni-im-msg')  
  //                              .where({  
  //                                conversation_id: dbCmd.in(res.data.map(item => item.id))  
  //                              })  
  //                              .orderBy('update_time', 'desc')  
  //                              .limit(limit)  
  //                              .get()  
  // // log请求时间  
  // console.error('getLastVisibleMsgsRes耗时', Date.now() - startTime,startTime)  
  // let lastVisibleMsgs = {}  
  // getLastVisibleMsgsRes.data.forEach(item => {  
  //   lastVisibleMsgs[item.conversation_id] = item  
  // })  
  // console.error('lastVisibleMsgs',lastVisibleMsgs);  
  // res.data.forEach(item => {  
  //   item.last_visible_msg = lastVisibleMsgs[item.id]  
  //   if (item.last_visible_msg) {  
  //     if (item.last_visible_msg.is_revoke) {  
  //       item.last_visible_msg.body = "消息已经被撤回"  
  //     }  
  //   }  
  // })
p***@126.com

p***@126.com

我也遇到了同样的问题,跟踪发现是uniCloud.getTempFileURL第一次返回正常,第二次就不正常了。你的问题解决了吗?

要回复问题请先登录注册