попробуйте изменить window.obj
на obj
, поскольку ваш obj
является только переменной, он не относится к window
объекту
, также, когда вы объявляете ваш объект, вы объявили его как Массив. Если вам нужен объект, вы можете использовать var obj = {};
, хотя в любом случае вы переназначаете его с помощью storePing
, вам необходимо переместить console.log
в обратный вызов then
обещания, так как у вас есть асинхронный c код - в данный момент ваш console.log
сработает до выполнения обратного вызова then
обещания, и, таким образом, obj
еще не будет иметь ожидаемого вами значения
что-то длинное строчки -
const router = exspress.Router();
const PingModel = mongose.model("Ping");
const ping = require("ping");
var tcpp = require("tcp-ping");
var obj = {}; // NOTE, object instead of array, though this gets reassigned anyway, so doesn't really matter
var a = 0;
var b = pingtime;
for(a; a<b; a++){
ping.promise.probe(host).then(function(data) {
const storePing = new PingModel();
storePing.hostPing = host;
storePing.hostIp = data.numeric_host;
if (data.alive) {
storePing.hostStatus = "Ok";
} else {
storePing.hostStatus = "Not_ok";
}
if (data.alive) {
storePing.hostLatency = "true";
} else {
storePing.hostLatency = "false";
}
storePing.save();
obj = storePing // <-- NOTE, no window object
console.log(obj); // <-- NOTE, logging inside the then callback
// return this.obj[a] = storePing;
});
}
module.exports = router;