0
我已經得到了返回來自PostGIS的數據庫檢索一些數據的JSON功能:由函數返回的Javascript(node.js)值未定義?
function ObtenerPuntosIniciales(TablaOrigen,callback)
{
var conexion = "postgres://postgres:[email protected]"+ Server +"/" + BD;
var sqlPunto='SELECT json FROM ' + TablaOrigen;
pg.connect(conexion, function(err, client, done) {
if(err) {
return callback(new Error('ObtenerPuntosIniciales_error en la conexion:', err));
}
client.query(sqlPunto, function(err, Resultado) {
if(err) {
return callback(new Error('ObtenerPuntosIniciales_error al ejecutar la consulta:', err));
}
return callback(null,Resultado);
done();
});
});
}
之後,我有一個代碼段分配由該函數返回一個變量的值,但這總是未定義,儘管函數內部正在顯示值:
var ObtainedData = ObtenerPuntosIniciales(TablaOrigenDeLosPuntos,function (err,result) {
if (err) {
console.log('Error:' + err);
return;
}
console.log('FunctionData:' +result.rows[0].json);
return result;
});
console.log('ObtainedData:'+ ObtainedData);
函數中的console.log顯示正確的值。 另一方面,函數外部的console.log顯示未定義。
這裏是控制檯顯示:
ObtainedData:undefined
GET /?ServidorOrigenDeLosPuntos=localgis-modelo&BDOrigenDeLosPuntos=geopista&Car
garCapas=true&NombreCapa1AMostrar=Circuitos&TablaCapa1=getxo_alum_circuitos_old&
TablaOrigenDeLosPuntos=getxo_alum_circuitos_old&NombreCampoClave1OrigenPto=id&Va
lorBuscadoCampoClave1OrigenPto=3 304 421ms
FunctionData:{"type":"LineString","coordinates":[[-3.009299817715526,43.3
46455178899078],[-3.009294275536192,43.346457831419585]]}
我想這個問題是在功能上,它沒有返回值放入變量,也可以是異步的問題。
是的,這是一個重複。 @Aitor請看看上面發佈的鏈接。 – randunel
鏈接解決了顯示函數內部數據的問題,我已經有了這個工作(請參閱我也使用回調)。我需要的是在功能外顯示它。 – Egidi