【发布时间】:2019-09-20 03:35:05
【问题描述】:
我必须为某些用户发送电子邮件。我有一个返回用户 ID 的承诺和另一个返回用户电子邮件(基于用户 ID)的承诺。 我有所有这些链接,但我的父函数得到一个空数组。
我尝试了 promise 和 async await,但我对此没有什么经验,而且我不知道我错过了哪里。
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。 我无法访问数组项。
【问题讨论】:
标签: reactjs typescript sharepoint promise spfx