.then
принимает функцию в качестве параметра, но в
restCallA()
.then(restCallB)
.then(myFun("test"));
вы немедленно вызываете myFun
и передаете возвращаемое значение второму .then
. Оценивается:
restCallA()
.then(restCallB)
.then(undefined);
myFun
немедленно запускает , в то время как интерпретатор пытается собрать цепочку обещаний (до того, как ответ вернется).
Передайте функцию, которая вызвала myFun
вместо:
restCallA()
.then(restCallB)
.then(() => myFun("test"));
Вы также можете использовать .bind
, который создаст функцию с нужными параметрами, но не вызовет ее:
restCallA()
.then(restCallB)
.then(myFun.bind(undefined, "test"));
Вызывать функцию из списка параметров .then
можно только в том случае, если функция возвращает функцию, например:
const fnThatReturnsFn = arg => resolveValue => console.log(arg, resolveValue);
someProm()
.then(fnThatReturnsFn('somearg'));