我正在努力将 Promise 的结果返回到下一个
.then
函数。
我确信我是盲目的,这确实是一个小问题,但实际上我看不出为什么下一个.then
函数的参数总是undefined
。
这是我的承诺:
await this.props.context.msGraphClientFactory
.getClient('3')
.then(async (client: MSGraphClientV3) => {
return await client
.api(`/groups/{${this.state.group?.id}}/members`)
.version("v1.0")
.get(async (err, res) => {
if (err) {
console.error(err);
return;
}
return res.value;
});
})
.then(async (users: Array<MicrosoftGraph.User>) => {
//users is always undefined
...
查看调试截图:
res.value
设置正确:
...但在下一个
.then
函数中,参数未定义:
有人可以告诉我,我做错了什么吗?非常感谢!
我不熟悉打字稿中的转换,但端点
GET /groups/{groupId}/members
默认返回 directoryObject
的集合。
user
源自 directoryObject
,在 then
方法中,您期望 user
的集合,并且可能不会执行转换。
我希望如此
.then(async (members: Array<MicrosoftGraph.DirectoryObject>) => {...}
应该可以工作,然后尝试在方法中将
directoryObject
转换为 user
。
或者如果你想真正检索用户,你可以进行服务器强制转换
await this.props.context.msGraphClientFactory
.getClient('3')
.then(async (client: MSGraphClientV3) => {
return await client
.api(`/groups/{${this.state.group?.id}}/members/microsoft.graph.user`)
.version("v1.0")
.get(async (err, res) => {
if (err) {
console.error(err);
return;
}
return res.value;
});
})
.then(async (users: Array<MicrosoftGraph.User>) => {..}