Это просто проблема с областью, потому что, когда вы создаете новую функцию, она создает новую область, так что вы не можете получить доступ к одной области из другой, это похоже на создание нового класса в Javascript. Это та же самая причина, когда вы создаете функцию, вам часто приходится создавать переменную для ссылки на это (например, const self = this). Вы можете обойти это, используя функции стрелок ES6, поскольку при их использовании он не создает новый класс / область видимости.
firstPromise().then( (resultOfFirstPromise) => {
var promiseArray = [];
for(var i = 0; i < 10; i++){
var ret = secondoPromise();
promiseArray.push(ret);
}
return Promise.all(promiseArray);
}, (error) => {
console.log("firstPromiseError");
}).then( (resultOfSecondPromise) => {
console.log(i); //but obviously i = 10
}, (error) => {
console.log("secondPromiseError");
});
Что-то в этом роде, возможно, вам придется немного подыскать.