我想构建一个用户数据库,如果他们有一个站点检查该站点是否在线,请保存该URL,如果不删除它并建议用户该站点处于脱机状态。问题是,当程序通过请求似乎什么也不做,只是跳出来,我尝试使用axios并请求,但问题仍然存在;我相信这可能是由于异步计算。任何帮助将非常感激=)
var r = require('rethinkdb');
var axios = require('axios');
var schema = function(data, callback){
new_schema = true;
var schema = {};
if(new_schema){
schema.user = user.id;
}
schema.name = data.title || '';
schema.email = data.email || '';
if(data.url){
axios.get(data.url).then(function(err, response){
if(err) schema.url = 'no site'
schema.url = 'data.url';
callback(schema);
}).catch(function(error){
console.log(error);
callback(schema);
});
}else{
callback(schema);
}
};
var datos = '';
command.stdout.on('data', (data) => {
datos = datos + data;
});
command.on('close', (code) => {
const objs = JSON.parse(datos);
for (var i in objs) {
let obj = schema(objs[i], function(sch){
console.log(sch);
});
}
}catch(e){
console.log(e);
}
process.exit();
});
});
问题是由于异步。要解决它必须使用队列,我使用库更好队列。这解决了问题,并对服务器端进行了所有调用。