У меня есть удобное решение для простых функций обещания.Но мне нужен способ связать набор функций обещаний, и последнее «тогда» вызовет три другие функции без обещаний.
Ниже приведено то, что я пробовал
function chainMyPromises(promiseFunction, promiseArray){
if(!promiseArray.length){
return;
}
promiseFunction.then(()=>{
const currentFunc = promiseArray.shift()
return chainMyPromises(currentFunc(), promiseArray);
});
}
const promiseArray = [functionOne, functionTwo, functionThree, functionFour];
function firstPromise(){
return Promise.resolve(true);
}
chainMypromises(firstpromise, promiseArray);
Ниже приведена моя функция, которая имеет некоторые функции, основанные на обещаниях, последний «then» проверяет ответ и вызывает три функции, не основанные на обещаниях.
function consolidatedReport(param1, param2){
const somedata = param1.data;
const someOtherData = param2.data;
if(true){
doThisthing();
}
return promiseChainBegin(somedata, someOtherData)
.then(response => response && functionOne(somedata, someOtherData)
.then(response => response && functionTwo(somedata, someOtherData)
.then(response => response && functionThree(somedata, someOtherData)
.then(response => response && functionFour(somedata, someOtherData)
.then(response => {
if(response) {
notApromiseFuncOne(somedata)(someOtherData);
notApromiseFuncTwo(somedata)(someOtherData);
notApromiseFuncThree(somedata)(someOtherData);
} else{
notApromiseFailCase(someOtherData);
}
});
}
Last 'then'вызывает три функции, которые не основаны на обещаниях.Мне нужен способ связать их и привести в порядок.Пожалуйста, предложите лучший способ их рефакторинга.