Come definire la funzione dipendente nel nodo js?

1

Ho un progetto nodejs in cui un sample.js include due funzioni la funzione A dipende dalla richiamata della funzione B.

// smaple.js
        Both function are included in the same file 
        function B ( arg1 , callback ){
            // do some async
            async.map(arg1 , function(item, cb){
                     var a = item.a
                     var b = a*4
                     cb( null , {'a':a,'b':b})  
                },function(err , result){
                callback(err , result)
            } )


        }


        function A ( arg , callback ){
            if(condition1){
            callback(null , 1)
            }else{
             B ( arg , function( err , result){
                if(err){
                 callback(err , result)
                }
                else if (result ==1 ){

                callback ( null , 2)
                }else{
                callback ( null , 1)
                }

             })
            }
        }

Scenario 2

        // function B is in outer.js and included as module
        sample.js

        var outerfunction = require('./outer.js');

        function A ( arg , callback ){
            if(condition1){
            callback(null , 1)
            }else{
             outerfunction.B ( arg , function( err , result){
                if(err){
                 callback(err , result)
                }
                else if (result ==1 ){

                callback ( null , 2)
                }else{
                callback ( null , 1)
                }

             })
            }
        }


        outer.js


        function B ( arg1 , callback ){
            // do some async
            async.map(arg1 , function(item, cb){
                     var a = item.a
                     var b = a*4
                     cb( null , {'a':a,'b':b})  
                },function(err , result){
                callback(err , result)
            } )


        }

        module.exports.B = B ;

Lo scenario 1 è un modo corretto di utilizzare la funzione? Cosa succederà se questo codice viene eseguito contemporaneamente utilizzando il modulo cluster?

Lo scenario 2 è il modo migliore per usare la funzione dipendente? Questo codice ha prestazioni migliori in caso di esecuzione simultanea?

    
posta Vivek Bajpai 18.10.2014 - 11:49
fonte

1 risposta

1

Entrambi i casi lo faranno. Devi solo mantenere la catena di metodi da eseguire.

Se un metodo è dipendente da un altro metodo, uno dei modi per mantenere la catena è chiamare il secondo metodo all'interno del callback al primo, proprio come fai tu credo:

Esempio:

function bar(param) {
    console.log(param);
}

function foo(param, done) {
    if(param === 1) {
        return done(param);
    }
}

foo(1, bar);
    
risposta data 29.06.2015 - 20:29
fonte

Leggi altre domande sui tag