【发布时间】:2019-03-04 13:43:35
【问题描述】:
我刚开始使用一些谷歌云服务,我正在尝试从数据存储中获取一个实体。
如果客户端有互联网连接,一切顺利。
但我想为客户端因任何原因(如互联网)而无法访问数据存储区的情况添加一个 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)
}
我的问题是:连接尝试没有时间限制。当客户端无法访问互联网时,请求将永远“挂起”,并且不要进入捕获条件。
我尝试了一些参数,例如: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 })
}
})
【问题讨论】:
标签: node.js google-cloud-platform google-cloud-datastore try-catch