[英]Getting data for an SPFx web part? No data being returned even though it's being output to the console
我正在為 SharePoint Online 創建一個 SPFx webpart。 我使用此代碼。 它確實將值寫入控制台(組中人員的所有 email 地址),但不會返回“stringToReturn”值以顯示在 web 部分中。
我的 web 零件顯示:會見團隊... undefined
我在做一些根本錯誤的事情嗎?
謝謝P
public async render(): Promise<void> {
this.domElement.innerHTML = `
<section>
<div>
Meet the Team...
</div>
<div>
${await this.getGroupData()}
</div>
</section>`;
}
protected async getGroupData(): Promise<string>
{
let stringToReturn:string;
try
{
this.context.msGraphClientFactory.getClient('3')
.then((client: MSGraphClientV3): void => {
client.api('groups/<GUID>/members')
.get((error: any, response: any, rawResponse?: any) => {
const members: MicrosoftGraph.User[] = response.value;
for (const memberDetail of members){
console.log('memberDetail.mail:' + memberDetail.mail);
stringToReturn = memberDetail.mail + "<br>";
}
});
});
}catch(e){
stringToReturn = e.message.toString();
}
您不會退回 Promise。
要么你 go 與異步等待風格
var client = await this.context.msGraphClientFactory.getClient('3');
var result = await client.api(...).get();
//do something with the result here
return stringToReturn;
或者你可以做類似的事情
return new Promise((resolve) => {
this.context.msGraphClientFactory.getClient('3')
.then((client: MSGraphClientV3): void => {
client.api('groups/<GUID>/members')
.get((error: any, response: any, rawResponse?: any) => {
const members: MicrosoftGraph.User[] = response.value;
for (const memberDetail of members){
console.log('memberDetail.mail:' + memberDetail.mail);
stringToReturn = memberDetail.mail + "<br>";
}
//when your string is ready return by resolving it
resolve(stringToReturn);
});
});
});
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.