Ai_GirlFriend/xuniYou/EaseIM/imApis/emUserInfos.js

81 lines
2.0 KiB
JavaScript
Raw Normal View History

2026-01-31 19:15:41 +08:00
import { EMClient } from '../index';
const _chunkArr = (oldArr, num) => {
oldArr.sort((a, b) => {
return a - b;
});
if (oldArr.length <= 0) return oldArr;
let newArr = [];
if (Math.ceil(oldArr.length / num) <= 1) {
newArr.push(oldArr);
return newArr;
}
for (let i = 0; i < oldArr.length; i = i + num) {
newArr.push(oldArr.slice(i, i + num));
}
return newArr;
};
const emUserInofs = () => {
const fetchUserInfoWithLoginId = () => {
const userId = EMClient.user;
return new Promise((resolve, reject) => {
if (userId) {
EMClient.fetchUserInfoById(userId)
.then((res) => {
const { data } = res;
resolve(data);
})
.catch((error) => {
reject(error);
});
}
});
};
const fetchOtherInfoFromServer = (userList) => {
let friendList = [];
friendList = Object.assign([], userList);
return new Promise((resolve, reject) => {
if (friendList.length && friendList.length < 99) {
EMClient.fetchUserInfoById(friendList)
.then((res) => {
const { data } = res;
resolve(data);
})
.catch((error) => {
reject(error);
});
} else {
let newArr = _chunkArr(friendList, 99);
for (let i = 0; i < newArr.length; i++) {
EMClient.fetchUserInfoById(newArr[i])
.then((res) => {
const { data } = res;
resolve(data);
})
.catch((error) => {
reject(error);
});
}
}
});
};
const updateUserInfosFromServer = (params) => {
return new Promise((resolve, reject) => {
EMClient.updateUserInfo({ ...params })
.then((res) => {
const { data } = res;
resolve(data);
})
.catch((error) => {
reject(error);
});
});
};
return {
fetchUserInfoWithLoginId,
fetchOtherInfoFromServer,
updateUserInfosFromServer,
};
};
export default emUserInofs;