Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- var getTime = (function() {
- var startTime = Date.now();
- return function() {
- return (Date.now() - startTime) / 1000;
- };
- })();
- Array.prototype.asyncMapP = function(callback) {
- return Promise.all(this.map(callback));
- };
- Array.prototype.asyncMapS = async function(callback) {
- var res = [];
- for (var i = 0; i < this.length; i++) {
- res.push(await callback(this[i], i, this));
- }
- return res;
- };
- function getSquare(i, j, arr) {
- console.log(`executing getSquare at ${getTime()}`);
- return i * i;
- }
- function getSquareAsync(i, j, arr) {
- return new Promise(resolve =>
- setTimeout(() => {
- console.log(`executing getSquareAsync at ${getTime()}`);
- resolve(i * i);
- }, 2000)
- );
- }
- async function run() {
- var arr = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];
- var result1 = arr.map(getSquare);
- console.log(`result1 @ ${getTime()}`, result1);
- // result1 is [ 1, 4, 9, 16, 25, 36, 49, 64, 81, 100 ]
- var result2 = await arr.asyncMapP(getSquareAsync);
- console.log(`result2 @ ${getTime()}`, result2);
- // result2 is [ 1, 4, 9, 16, 25, 36, 49, 64, 81, 100 ]
- var result3 = await arr.asyncMapS(getSquareAsync);
- console.log(`result3 @ ${getTime()}`, result3);
- // result3 is [ 1, 4, 9, 16, 25, 36, 49, 64, 81, 100 ]
- }
- run();
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement