Я только начинаю с некоторых облачных сервисов Google и пытаюсь получить объект из хранилища данных.
Если у клиента есть подключение к Интернету, все идет хорошо.
Но я хочу добавить оператор try catch для случаев, когда у клиента нет доступа к хранилищу данных по любой причине (например, к Интернету).
Вот мой код:
try{
let search = datastore.key(['Client', Client_id])
datastore.get(search, /*{timeout: 1000},*/ function (err, entity) {
console.log('limit >>>', entity.limit)
evt.emit('comparedate', res, entity.limit)
});
}
catch(error){
console.log('Error >>>', error)
}
Моя проблемаis: нет ограничения по времени для попытки подключения.Когда клиент не имеет доступа к Интернету, запрос остается «ожидающим» вечно и не переходит в состояние перехвата.
Я пробовал некоторые параметры, такие как: Global # CallOptions , нобезуспешно.
Спасибо за любую помощь!
РЕДАКТИРОВАТЬ >>>> Я знаю, что это не самый надежный способ.Но сейчас я решил с этим кодом:
evt.on('isonline', (res) => {
try{
require('dns').lookup('google.com',function(err) {
if (err && err.code == "ENOTFOUND") {
console.log('NO INTERNET')
evt.emit('readofflinedata', res)
} else {
console.log('WITH INTERNET')
evt.emit('readonlinedata', res)
}
})
}
catch(error){
res.status(200).send({ error: true, message: error.message })
}
})