网络连接管理connection中this指向问题
在网络管理模块connection中,按照开发文档的示例代码,在调用connection.hasDefaultNet函数时,其回调函数中使用this.xxx时,会发生异常。如下图所示:
checkInterNetInfo() {
connection.hasDefaultNet().then(function (has) {
if (has) {
this.message = "网络正常";
} else {
this.message = "网络异常"
}
}).catch((err) => {
console.info("check internet error: " + err)
})
}
当代码执行到“this.message="网络正常"”或者“this.message="网络异常"”时,会发生异常,并进入catch中。这并不是期待的结果。究其原因,是this指向的问题导致的。在then()函数中使用匿名函数function(has){}等方式时,在function函数体中this指向的是函数本身,并非全局对象,从而导致异常。
HarmonyOS
赞
收藏 0
回答 1
待解决
相关问题
#鸿蒙通关秘籍#网络连接管理包括哪些内容?
109浏览 • 1回复 待解决
#鸿蒙通关秘籍#在网络连接管理中,API调用的方式有哪些特点?
111浏览 • 1回复 待解决
HarmonyOS 网络连接监听问题
51浏览 • 1回复 待解决
获取当前网络连接能力
824浏览 • 1回复 待解决
获取netHandle网络连接信息
641浏览 • 1回复 待解决
使用connection网络管理接口获取网络类型的相关疑问
766浏览 • 1回复 待解决
axios网络功能问题,axios是否会支持网络连接失败的重试机制?
1033浏览 • 1回复 待解决
网络连接能力监听,应用操作时需要随时监听过程中网络连接状态变化,将连接信息返回及时进行处理
769浏览 • 1回复 待解决
HarmonyOS 获取当前设备的网络连接是wifi还是移动网络
68浏览 • 1回复 待解决
DevEco Studio 每次到安装SDK部分就显示网络连接失败
3597浏览 • 1回复 待解决
代理只能连接网络的时候设置,一旦网络连接上后就没有入口设置代理了
664浏览 • 1回复 待解决
HarmonyOS如何获取当前的网络连接状态是WIFI还是数据流量?
404浏览 • 1回复 待解决
HarmonyOS 如何获取设备信息,如果系统、版本、当前是否有网络连接
24浏览 • 1回复 待解决
HarmonyOS 检查网络状态connection.hasDefaultNet方法问题
48浏览 • 1回复 待解决
HarmonyOS rcp创建connection连接数
2浏览 • 1回复 待解决
HarmonyOS this指向问题
45浏览 • 2回复 待解决
HarmonyOS this指向的问题
8浏览 • 1回复 待解决
使用IP Connection连接方式调试鸿蒙应用,手机拒绝连接,怎么办?
5133浏览 • 1回复 待解决
HarmonyOS connection模块如何查询网络是否可用
5浏览 • 1回复 待解决
手机网络正常,调用connection.hasDefaultNet()接口失败
644浏览 • 1回复 待解决
connection.getDefaultNet中netID取值的咨询
303浏览 • 1回复 待解决
HarmonyOS webview里能否能拦截到容器里的网络请求,并对其进行接管?
390浏览 • 1回复 待解决
手机网络正常,但是调用connection.hasDefaultNet()接口失败
1872浏览 • 1回复 待解决
网络地址建立socket连接
762浏览 • 1回复 待解决
HarmonyOS 怎么监听网络断网和网络重新连接
2浏览 • 1回复 待解决
方式1:使用箭头函数表示。例如将then()中传入的回调函数改为使用箭头函数表示
方式2:改变this指向,使其指向正确的对象。如下所示:
说明:
开发文档中connection示例代码链接如下:gitee.com/openharmony/docs/blob/master/zh-cn/application-dev/reference/apis/js-apis-net-connection.md
该模块下的接口信息多为异步返回结果,在使用时皆需注意this指向的问题