khusamov
@khusamov
ReactJS, NodeJS, TypeScript, Sencha ExtJS

Promise: Как передать параметр then(param) дальше по цепочке?

При условии, что в первом then надо вернуть Promise. Без него понятно как передать.
...
.then(function(param1) {
	...
	return Promise;
})
.then(function(param2) {
	// здесь нужно иметь доступ к значению param1 из предыдущего then
})
  • Вопрос задан
  • 4281 просмотр
Решения вопроса 1
inook
@inook
JavaScript-Developer
.then(function(param1) {
  ...
  return Promise.all([
    Promise.resolve('val1'),
    param1
  ]);
})
.then(function(arr) {
  var param2 = arr[0]
    , param1 = arr[1] 
})
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 3
alexey-m-ukolov
@alexey-m-ukolov Куратор тега JavaScript
Передайте его в качестве аргумента при резолве промиса:
jsfiddle.net/koceg/b23xgbLy/1
Ответ написан
AMar4enko
@AMar4enko
Как насчет
var param1;
// ...
.then(function(p1) {
    param1 = p1;
    // ...
    return Promise;
})
.then(function(param2) {
  console.log(param1, param2);
})
Ответ написан
khusamov
@khusamov Автор вопроса
ReactJS, NodeJS, TypeScript, Sencha ExtJS
Вроде нашел способ:

...
.then(function(param1) {
    ...
    Promise.then(function(param2) {
        return {param1: param1, param2: param2};
    });
    return Promise;
})
.then(function(params) {
    // params.param1, params.param2
})
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы