Всем привет! Не могу понять почему не записывается значение переменной respPhone. Внутри BX24.callMethod у нее есть значение, а после выхода, там пусто. Пробовал async и setTimeout та же история, не знаю, как ее оттуда выдернуть.
<script>
BX24.init(function(){
BX24.callMethod(
"crm.company.list",
{
order: { "DATE_CREATE": "ASC" },
select: [ "ID", "ASSIGNED_BY_ID", "PHONE" ]
},
function(result)
{
if(result.error())
console.error(result.error());
else
{
for (var i = 0; i < result.data().length; i++)
{
var element = result.data()[i]; //текущая компания
//Поиск телефона ответственного для текущей компании
var userID = element.ASSIGNED_BY_ID;
var respPhone = "";
BX24.callMethod('user.get', {"ID": userID},
function(res){
respPhone = (res.data()[0].WORK_PHONE);
console.log(respPhone); //здесь есть номер
});
console.log(respPhone); //а здесь пусто
//Перебираем массив телефонов компании
var arrPhone = element.PHONE;
for (var a = 0; a < arrPhone.length; a++) {
var companyPhone = arrPhone[a].VALUE;
console.log(companyPhone + respPhone);//здесь соответственно тоже
}
}
}
if(result.more())
result.next();
});
});
</script>
<script>
BX24.init(function(){
BX24.callMethod(
"crm.company.list",
{
order: { "DATE_CREATE": "ASC" },
select: [ "ID", "ASSIGNED_BY_ID", "PHONE" ]
},
function(result)
{
if(result.error())
console.error(result.error());
else
{
for (var i = 0; i < result.data().length; i++)
{
var element = result.data()[i]; //текущая компания
//Поиск телефона ответственного для текущей компании
var userID = element.ASSIGNED_BY_ID;
var respPhone = "";
BX24.callMethod('user.get', {"ID": userID},
function(res){
respPhone = (res.data()[0].WORK_PHONE);
console.log(respPhone); //здесь есть номер
});
console.log(respPhone); //а здесь пусто
//Перебираем массив телефонов компании
var arrPhone = element.PHONE;
for (var a = 0; a < arrPhone.length; a++) {
var companyPhone = arrPhone[a].VALUE;
console.log(companyPhone + respPhone);//здесь соответственно тоже
}
}
}
if(result.more())
result.next();
});
});
</script>