Я не знаю, насколько вы контролируете архитектуру вашей системы, но это хороший сценарий для реализации веб-сокетов, я настоятельно рекомендую этот подход по сравнению с опросом на стороне клиента.
Однако, если выищите быстрое решение, этот простой код должен помочь вам:
processUpdate(id) {
let pdfsPromise = new Promise(resolve => {
var getPdfs = () => {
return new Promise(resolve => {
let pdfs = getList('PDF');
if(pdfs && pdfs.length > 0) {
resolve(pdfs);
}
else {
setTimeout(() => {
getPdfs().then(pdfs => {
resolve(pdfs);
});
}, 10000)
}
})
}
getPdfs.then( pdfs => {
resolve(pdfs);
});
});
Promise.all([pdfsPromise, getName()]).then (([list, name]) => {
this.setState({list, name});
});
}
Кстати, я упустил обработку ошибок для простоты кода