Я должен отправить электронное письмо некоторым пользователям.У меня есть обещание, которое возвращает идентификаторы пользователей, и другое, которое возвращает электронные письма пользователей (на основе идентификатора пользователя).Я все это приковал, но моя родительская функция получает пустой массив.
Я пробовал обещания и асинхронное ожидание, но у меня мало опыта с этим, и я не знаю, где мне не хватает.
private async _getUserFromContatos(_subtipoEmergenciaID: number):Promise<string[]>{
const _arrTo: string[] = [];
sp.web.lists.getByTitle("Contato").items.get().then((items:any[]) => {
let _contatos = items.filter((i) => i.SubtipoEmergenciaId == _subtipoEmergenciaID);
_contatos.map(c => {
sp.web.getUserById(c.FuncionarioId).get().then(_userInfo => {
_arrTo.push(_userInfo.Email);
});
});
});
return _arrTo;
}
private _sendMail(){
this._getUserFromContatos(this.state.selectedSubtipoEmergencia).then(
_arrTo => {
console.log(_arrTo); //Returns the array as if its filled ok
console.log(_arrTo.length); //Returns 0 (empty array)
});
}
Первый console.log в конце возвращает заполненный массив, новторой возвращает 0. Я не могу получить доступ к элементам массива.