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?