history-msg.js 1.2 KB

123456789101112131415161718192021222324252627282930313233343536373839
  1. export const getHistoryMsg = (params)=>{
  2. const { page = 1,rows = 10 } = params ?? {};
  3. let join = ()=>{
  4. let arr = [];
  5. //通过当前页码及页数,模拟数据内容
  6. let startIndex = (page-1) * rows;
  7. let endIndex = startIndex + rows;
  8. for(let i = startIndex; i < endIndex; i++){
  9. arr.push({
  10. content: `这是历史记录的第${i+1}条消息,第${page}页,[微笑][NO][下雨][OK]`,
  11. userType: Math.random() > 0.5 ? 'self' : 'friend',
  12. avatar: '/static/logo.jpg',
  13. msgType:'text',
  14. list:[],
  15. messageId: Date.now(),
  16. timestamp: Date.now()
  17. })
  18. }
  19. /*
  20. 颠倒数组中元素的顺序。将最新的数据排在本次接口返回数据的最后面。
  21. 后端接口按 消息的时间降序查找出当前页的数据后,再将本页数据按消息时间降序排序返回。
  22. 这是数据的重点,因为页面滚动条和上拉加载历史的问题。
  23. */
  24. // arr.reverse();
  25. return arr;
  26. }
  27. // 此处用到 ES6 的 Promise 知识,不懂的请自行学习。
  28. return new Promise((done,fail)=>{
  29. // 无数据请求接口,由 setTimeout 模拟,正式项目替换为 ajax 即可。
  30. setTimeout(()=>{
  31. let data = join();
  32. done(data);
  33. },1000);
  34. })
  35. }