$p.ex.getUserList = function () { let userList = {}; function sendRequest(offset) { //送信データ let json = { "ApiVersion": 1.1, "ApiKey": "6504c8a807677a3a576e10327f3c19876c55736ee45d4a845796b9e7f5e087bfd4bd0d8184863da8cf1733ca635111432ab334aea59102b06a96ee6d2c05190d", "Offset": offset, "View": { "ApiGetMailAddresses": true, }, }; //データ取得リクエスト const url = 'https://' + location.hostname + '/pleasanter/api/users/get'; const xhr = new XMLHttpRequest(); //XMLHttpRequestの作成 //HTTPリクエスト実行 xhr.open('POST', url, false); xhr.setRequestHeader('Content-Type', 'application/json;charset=utf-8'); xhr.onload = () => { //XMLHttpRequestのリクエストステータスの確認 if (xhr.status === 200) { //success data = JSON.parse(xhr.responseText); $.each(data.Response.Data, function (index, value) { userList[value.UserId] = { "name": value.Name, "userId": value.UserId, "deptId": value.DeptId, "mailAddress": value.MailAddresses[0], }; }); if ((data.Response.Offset + data.Response.PageSize) <= data.Response.TotalCount) { sendRequest(data.Response.Offset + data.Response.PageSize); } } else { //error console.log(JSON.parse(xhr.responseText)); } }; xhr.send(JSON.stringify(json)); } sendRequest(0); //console.log(userList); return userList; }