Nodejs Array ForEach forEachSync(callback,compliteCallBack)

Here you can find the source of forEachSync(callback,compliteCallBack)

Method Source Code

var async = require('async');

var worker = function(array,callback,compliteCallBack){
  var index = 0;//??
  var q = async.queue(function(item,cb){
    var cback = function(){
      index = index+1;/*  w  ww  .j a  v  a  2s  . co m*/
      cb();
    };
    callback(item,index,cback)
  },1);
  array.forEach(function(item){
    q.push(item,function(){});
  });
  q.drain = function(){
    compliteCallBack();
  };
};
Array.prototype.forEachSync = function(callback,compliteCallBack){
  new worker(this,callback,compliteCallBack);
}

Related

  1. forEach(predicate)
    Array.prototype.forEach = function(predicate)
      for (var i = 0; i < this.length; i++)
        predicate(this[i]);
    Array.prototype.contains = function(o)
      return this.indexOf(o) >= 0;
    
  2. forEach.call(items, (item)>
    items = document.querySelectorAll('x-markdown')
    Array.prototype.forEach.call(items, (item)=>{
      html = marked(item.textContent)
      item.innerHTML = html
    })
    
  3. forEach1( callback )
    Array.prototype.forEach1 = function ( callback ) {
            for (var j = 0, k ; k=this[j++]; ) {  callback(k,j,this) ; }
    Array.prototype.forEach2 = function ( callback ) {
            for (var j = 0 ; j < this.length; j++ ) {  callback(this[j],j,this) ; }
    Array.prototype.forEach3 = function ( callback ) {
            var j = 0 ; while( this[j++] ) {  callback(this[j],j,this) ; }
    var a = [1,2,3,4,5,6,7,8,9,0] ;
    function unit ( method ) 
       var s = [] ;
        a[method]( function (v,i,a) { s.push(i+":"+v); } )
      return s ;
    function loop ( size, method ) {
    var t1 = new Date() ;
     while ( size--) { unit(method); }
    return (new Date()) - t1 ;
    loopall = function ( ) {
     var s = [] ;
     var j = 0, method ; while ( method = arguments[j++] ) {
      s.push( method + ": " +  loop( 1e4 , method )  + " ms " ) ;
       return s ;
    } ( "forEach1", "forEach2", "forEach3" ) .join("\n") ;
    
  4. forEach2(a)
    Array.prototype.forEach2 = function (a) {
      for (var b = 0; b < this.length; ++b) a(this[b], b, this)
    };
    Array.prototype.map2 = function (a) {
      var l = this.length;
      var array = new Array(l),
        i = 0;
      for (; i < l; i++) {
        array[i] = a(this[i], i)
    ...
    
  5. forEachCallback(callback, finishCallback)
    'use strict';
    Array.prototype.forEachCallback = function(callback, finishCallback) {
      var current = 0;
      var self = this;
      var next = function() {
        if (!self) {
          console.log("Something went wrong...");
          throw('No self!');
          return;
    ...
    
  6. forEachSync(callback,compliteCallBack)
    var async = require('async');
    var worker = function(array,callback,compliteCallBack){
      var index = 0;
      var q = async.queue(function(item,cb){
        var cback = function(){
          index = index+1;
          cb(); 
        };
        process.nextTick(function(){
    ...
    
  7. foreach( callback )
    Array.prototype.foreach = function( callback ) {
      for( var k=0; k<this .length; k++ ) {
        callback( k, this[ k ] );
    };
    
  8. foreach( callback )
    Array.prototype.foreach = function( callback ) {
      for( var k=0; k<this .length; k++ ) {
        callback( k, this[ k ] );
    Object.prototype.foreach = function( callback ) {
      for( var k in this ) {
        if(this.hasOwnProperty(k)) {
         callback( k, this[ k ] );
    ...
    
  9. foreach(callback)
    Array.prototype.foreach = function(callback) {
      for(var i in this) if(this.hasOwnProperty(i)) callback(this[i]);
      return this;