promise提供了all方法, 但是狀態只有2種,
第一種是所有promise例項都成功則返回值組成乙個陣列,傳遞給p的**函式;
第二種是有乙個例項被rejected,狀態就變成rejected,此時第乙個被reject的例項的返回值,會傳遞給p的**函式。
問題:其實我想要所有非同步的結果,不管成功與否,然後根據結果遍歷做相應的事, 下面方法就是這麼產生的。
/** * 並行執行非同步,每個非同步不管成功與否,都把結果放入result中,作為**的第乙個引數
* @param arr [arr陣列中全都是promise例項]
* @param callback [等所有非同步完成後的** result是結果,作為其第乙個引數]
*/var parallel = function
(arr, callback) ).
catch(function
(reason) );
};}
else
;
function
_after(times, callback) ;
return
function
(key, value) ;
};};
};
//使用/測試
function
a()
function
b() , 4000);
});};
function
c() , 2000);
});};
var promises =[a(), b(), c()];
console.time('lab');
parallel(promises,
function
(result) );
非同步函式的序列執行和並行執行
對於非同步函式的序列和並行執行如果處理不好會出現js的 地獄,在這方面async.js是乙個不錯的解決方案,有時為了縮小 體積自己diy乙個 序列執行arr中的函式 var series function arr,callback else process 並行執行arr中的函式 var paral...
Oracle並行模式(Parallel)
1.例項 1 insert 加速 2.用途 強行啟用並行度來執行當前sql。這個在oracle 9i之後的版本可以使用,之前的版本現在沒有環境進行測試。也就是說,加上這個說明,可以強行啟用oracle的多執行緒處理功能。舉例的話,就像電腦裝了多核的cpu,但大多情況下都不會完全多核同時啟用 2核以上...
oracle並行模式(Parallel)
1 用途 強行啟用並行度來執行當前sql。這個在oracle 9i之後的版本可以使用,之前的版本現在沒有環境進行測試。也就是說,加上這個說明,可以強行啟用oracle的多執行緒處理功能。舉例的話,就像電腦裝了多核的cpu,但大多情況下都不會完全多核同時啟用 2核以上的比較明顯 使用parallel說...