angular - 在角度服务调用中获取 ip 地址时出现异步执行问题
问题描述
我正在写一个日志服务,在日志服务中有几个日志信息。如果我获取 IP 地址,它将在一些延迟后获取 IP 地址,IP 地址在错误对象中未定义。因为
logError(response: any): any {
let errors:any;
console.log(response, "log service error");
this.getIP();
error = {
ExceptionMessage: response.message,
ipaddress: this.getIP(),// is undefined
htmlDOM: document.getElementsByTagName("body")
screenShot:another service call,
}
console.log(error, 'logged');
return error;
}
getIP() {
this.getIPAddress().subscribe((res: any) => {
//getting ipaddress
return res.ip;
});
}
getIPAddress() {
return this.httpClient.get("http://api.ipify.org/?format=json");
}
getScreen() {}
操作:目前它通过使用这个设置的超时解决方案来工作。更好的解决方案表示赞赏。
尝试使用 async 和 await 但它不起作用,
logError(response: any): any {
setTimeout(()=>{
let errors:any;
console.log(response, "log service error");
this.getIP();
error = {
ExceptionMessage: response.message,
ipaddress: this.getIP(),// is undefined
htmlDOM: document.getElementsByTagName("body")
screenShot:another service call,
}
console.log(error, 'logged');
return error;
},7000);
return error;
}
解决方案
推荐阅读
- xamarin.forms - 使用 GPU 加速的 SkiaSharp 绘图图像
- ehcache - 如何禁用 ehcache 或所有类型的缓存?
- c++ - 如何“绕过”封装?
- tensorflow - 如何在 Windows XP 32 位上构建 TensorFlow C++ 库
- c# - 从链表 C# 的元素引用类的函数
- c - 如何在 Gtk 3 中链接 GMenu 和 GtkMenu 按钮
- c++ - 如何优化winapi
- c - 在 C 中弹出中间元素
- python - 在 matplotlib 中创建一个离散的颜色条
- java - 从数据库中检索 BLOB 图像并将其显示为 javafx 上的图像