Я все еще новичок в использовании API-интерфейсов Promise, и я боюсь, как избежать глубоко вложенных цепочек Promise, которые, насколько я понимаю, являются одним из преимуществ использования Promises. Используя следующий псевдокод в качестве примера, как избежать вложенности Promises, когда последующие полагаются на контекст предыдущих?
function loadDependency1() {
// return a promsise to load the first dependency
}
function loadDependency2(dependency1) {
// return a promise to load the second dependency, which relies on the first dependency
}
function loadDependency3(dependency2) {
// return a promise to load the third dependency, which relies on the second dependency
}
function doWork(dependency1, dependency2, dependency3) {
// finally have all the things necessary to do work
}
// load all the dependencies and eventually doWork
loadDependency1().then(function(dependency1) {
return loadDependency2(dependency1).then(function(dependency2) {
return loadDependency3(dependency2).then(function(dependency3) {
doWork(dependency1, dependency2, dependency3);
});
});
});