Я использую Q.all
в сочетании с spread
для того, чтобы перенести две promise.then
быть проведены одновременно с успешным разрешением в promise
:ошибок с использованием расшир Q.all
var p1=112;
var p2=function(data){
console.log(data);
return getFormDataWithDropdown(objtype,scenario);
};
var guidRequest=processGuidRequest();
if(!Q.isPromise(guidRequest))
{
guidRequest=Q(guidRequest);
}
guidRequest.all([p1,p2])
.spread(function(geoVal,formVal){
console.log(geoVal);
console.log(formVal);
}).done();
p1
является value
и p2
является функцией, которая возвращает function
с именем getFormDataWithDropdown, который возвращает promise
или value
на основе разрешения набора из набора promise
.Но я получаю эту ошибку при запуске этого кода:
Uncaught TypeError: Function.prototype.apply: Arguments list has wrong type
Ошибка возникает в этой функции:
Promise.prototype.spread = function (fulfilled, rejected) {
return this.all().then(function (array) {
return fulfilled.apply(void 0, array);//error occurs here
}, rejected);
};