是否可以拥有一个接受五个承诺的功能?
function getDadosQuestionarios(getDadosQuestionarioET, getDadosQuestionarioST, getDadosQuestionarioWAI, getDadosQuestionarioOQ10, getDadosQuestionarioAQP9){
return Promise.all([getDadosQuestionarioET, getDadosQuestionarioST, getDadosQuestionarioWAI, getDadosQuestionarioOQ10, getDadosQuestionarioAQP9])
.then(function(values){
return [values[0], values[1], values[2], values[3], values[4]]
})
}
我已经测试了两个并且它有效,但当我添加第三个承诺时,我收到错误:getDadosQuestionarioWAI is not defined
。
答案 0 :(得分:0)
可以肯定的是,请看下面的代码作为示例,还要注意当参数作为未定义提供时如何捕获错误。
(async function(){
const delay = time => new Promise(res=>setTimeout(()=>res(time),time));
console.log('Start', new Date())
const testFn = function(a,b,c,d,e){
// Note: Arguments is a built in property.
if(Array.from(arguments).indexOf(undefined)!=-1){
return new Promise((res,rej)=>rej('Undefined Argument'));
}else{
return Promise.all([a,b,c,d,e]);
}
};
testFn(delay(1),delay(2),delay(3),delay(4),undefined).then(data=>{
console.log('Done', new Date());
}).catch(err=>console.log('ERROR:',err));
})();