Skip to main content

Recursive array calls one after another through promise

 data = [1,2,3,4]
rules = [
                function(d){ return d.map(x => x * 2); },
                function(d){ return d.map(x => x * 2); }
            ]
recursive(0,rules,data);



function somelongrunningprocess(rule, data){
    var d = $.Deferred();
    setTimeout(function(){ var result = rule.call(undefined,data); d.resolve(result); },1000);
    return d;
}

function recursive(index, rules, data) {
            if(index < rules.length) {
                $.when(somelongrunningprocess(rules[index],data)).then(function(response){
                    console.log("after_rule",response);    
                    //recursive((index+1), rules, data);
                    recursive((index+1), rules, response);
                });            
            }
}

Comments

Popular posts from this blog

Enable Https by self-signing certification.

  Run make-ssl-cert command > sudo make-ssl-cert generate-default-snakeoil will created 2 files in following directory.     - /etc/ssl/certs/ssl-cert-snakeoil.pem     - /etc/ssl/private/ssl-cert-snakeoil.key Open /etc/apache2/site-avilable and find and modify with below line (with above certs paths) .         SSLCertificateFile    /etc/ssl/certs/ssl-cert-snakeoil.pem         SSLCertificateKeyFile /etc/ssl/private/ssl-cert-snakeoil.key > sudo a2ensite default-ssl > sudo a2enmode ssl > sudo systemctl restart apache2 Open https://localhost

simple recursive function to copy entire directories

<?php function recurse_copy ( $src , $dst ) {     $dir = opendir ( $src );     @ mkdir ( $dst );     while( false !== ( $file = readdir ( $dir )) ) {         if (( $file != '.' ) && ( $file != '..' )) {             if ( is_dir ( $src . '/' . $file ) ) {                 recurse_copy ( $src . '/' . $file , $dst . '/' . $file );             }             else {                 copy ( $src . '/' . $file , $dst . '/' . $file );             }         }     }     closedir ( $dir ); } ?>