emUserInfos.js 2.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081
  1. import { EMClient } from '../index';
  2. const _chunkArr = (oldArr, num) => {
  3. oldArr.sort((a, b) => {
  4. return a - b;
  5. });
  6. if (oldArr.length <= 0) return oldArr;
  7. let newArr = [];
  8. if (Math.ceil(oldArr.length / num) <= 1) {
  9. newArr.push(oldArr);
  10. return newArr;
  11. }
  12. for (let i = 0; i < oldArr.length; i = i + num) {
  13. newArr.push(oldArr.slice(i, i + num));
  14. }
  15. return newArr;
  16. };
  17. const emUserInofs = () => {
  18. const fetchUserInfoWithLoginId = () => {
  19. const userId = EMClient.user;
  20. return new Promise((resolve, reject) => {
  21. if (userId) {
  22. EMClient.fetchUserInfoById(userId)
  23. .then((res) => {
  24. const { data } = res;
  25. resolve(data);
  26. })
  27. .catch((error) => {
  28. reject(error);
  29. });
  30. }
  31. });
  32. };
  33. const fetchOtherInfoFromServer = (userList) => {
  34. let friendList = [];
  35. friendList = Object.assign([], userList);
  36. return new Promise((resolve, reject) => {
  37. if (friendList.length && friendList.length < 99) {
  38. EMClient.fetchUserInfoById(friendList)
  39. .then((res) => {
  40. const { data } = res;
  41. resolve(data);
  42. })
  43. .catch((error) => {
  44. reject(error);
  45. });
  46. } else {
  47. let newArr = _chunkArr(friendList, 99);
  48. for (let i = 0; i < newArr.length; i++) {
  49. EMClient.fetchUserInfoById(newArr[i])
  50. .then((res) => {
  51. const { data } = res;
  52. resolve(data);
  53. })
  54. .catch((error) => {
  55. reject(error);
  56. });
  57. }
  58. }
  59. });
  60. };
  61. const updateUserInfosFromServer = (params) => {
  62. return new Promise((resolve, reject) => {
  63. EMClient.updateUserInfo({ ...params })
  64. .then((res) => {
  65. const { data } = res;
  66. resolve(data);
  67. })
  68. .catch((error) => {
  69. reject(error);
  70. });
  71. });
  72. };
  73. return {
  74. fetchUserInfoWithLoginId,
  75. fetchOtherInfoFromServer,
  76. updateUserInfosFromServer,
  77. };
  78. };
  79. export default emUserInofs;