傳播我結合使用Q.all
與spread
以便遷移2 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
是一個函數,返回一個名爲getFormDataWithDropdown的function
,它返回promise
或value
,它基於一組鏈接的promise
s的分辨率。但是,當我運行此代碼時,出現此錯誤:
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);
};