parallel方法 非同步並行執行

2022-03-03 11:11:01 字數 961 閱讀 5007

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說...