Переменные предыдущего промиса.
приветствую уважаемых коллег!
Учусь работать с промисами. Есть примерно такой код:
doRequest(param1)
.then(data1 =>{
return doRequest(param2);
} )
.then(data2 => {
result = data1 + data2;
})
Во втором блоке then нужны результаты обеих запросов (data1 и data2), однако data1 там не доступна. Как прокинуть во второй блок данные полученные в первом? или как по другому правильно решить эту проблему. |
|
Там приводится решение через Promise.all(...) т.е. оба запроса отправляются параллельно.
А если второй запрос необходимо выполнить после первого (т.к. для второго нужны параметры, возвращаемые первым). Тогда как? |
Конечно, можно ещё через await или калбеками, но мне хотелось узнать есть ли решение именно по классической схеме через promis.
|
<script>
function doRequest() {
return Promise.resolve('data2')
}
Promise.resolve('data1')
.then(data1 => {
return doRequest().then(data2 => [data1, data2])
})
.then(([data1, data2]) => console.log(data1, data2));
</script>
|
там есть пример, что результат первого промиса сохраняется в переменной объявленной выше... думаю чисто на промисах, без доп переменных не получится...
или ждем других читателей... |
Цитата:
|
кажется destus классное решение показал, чуть позже проверю как будет работать.
|
пример из первого поста, и в пример destus'a... это разные примеры %)
|
я так понял, что идея в том, что вместо:
return doRequest(param2); из первого примера, надо написать: return doRequest(param2).then(data2 => [data1, data2]); В этом случае во второй then должны вернутся все нужные данные. |
| Часовой пояс GMT +3, время: 20:37. |