Нечто подобное может сработать для вас.
Я реорганизовал постраничную выборку в функцию async
, которая вызывает себя, если есть еще элементы для выборки, а затем в конечном итоге разрешает полный массив результатов.
Сухой код, поэтому могут быть ошибки и YMMV, но надеюсь, что это поможет.
export const fetchAllTeams = () => {
return dispatch => {
dispatch(fetchAllTeamsRequest());
};
};
export const fetchAllTeamsRequest = () => {
return async dispatch => {
dispatch(getAllTeamStarted());
try {
const teamsArray = await getPaged(
"https://graph.microsoft.com/v1.0/me/memberOf?$top=10",
);
dispatch(fetchAllTeamsSucces(teamsArray));
} catch (err) {
dispatch(fetchAllTeamsFailure(err));
}
};
};
const getPaged = async (url, resultArray = []) => {
const response = await adalGraphFetch(fetch, url, {});
if (response.status != 200 && response.status != 204) {
throw new Error("failed to fetch teams");
}
const result = await response.json();
objectToArray(result.value).forEach(team => resultArray.push(team));
if (result["@odata.nextLink"]) {
// Get more items...
return getPaged(resultArray, result["@odata.nextLink"]);
}
return resultArray; // All done, return the teams array.
};
WbBrowser.Url is of type Uri so you need to use
WbBrowser.Url = new Uri(link);
Обратите внимание, что установка URL-адреса аналогична вызову функции Navigate (). Navigate принимает строку в качестве аргумента в качестве URL-адреса, что исключает этап преобразования вашего URL-адреса в строку.