chrome.serial.connect 回调范围问题
chrome.serial.connect callback scope issues
我正在尝试与Chrome应用程序中的串行设备进行通信。我遇到的问题是来自chrome.serial函数的回调在错误的范围内。如果我将所有内容都放在全局范围内,一切都在工作,但是如果我尝试在"类"中调用任何东西,那么什么都不会发生。
service = {};
service.state = "disconnected";
service.connect = function(){
chrome.serial.connect(service.config.port, options, function (connectionInfo) {
console.log("Connected"); // This works
service.state = 'connected'; // This doesn't change the variable
this.state = 'connected'; // This also doesn't change it
}
}
您也可以将回调函数的作用域绑定到服务对象。
service = {};
service.state = "disconnected";
service.connect = function() {
chrome.serial.connect(this.config.port, options, function (connectionInfo) {
console.log("Connected"); // This works
this.state = 'connected';
}.bind(this));
}
我通过在此函数调用之前将范围保存在局部变量中来解决此问题
service = {};
service.state = "disconnected";
service.connect = function(){
var scope = this;
chrome.serial.connect(service.config.port, options, function (connectionInfo) {
console.log("Connected"); // This works
service.state = 'connected'; // This doesn't change the variable
this.state = 'connected'; // This also doesn't change it
scope.state = 'connected'; // This works!
}
}
相关文章:
- setInterval游戏循环的范围问题
- firefox中的Javascript事件范围问题
- jQuery“this”范围问题
- 可以't在quizz页面范围问题上用最终分数更新变量
- JavaScript 函数变量范围问题
- 奇怪的可变范围问题
- AngularJS中的范围问题
- 如何在 JavaScript for D3.js 中解决这样的范围问题
- 我可以设置这个吗'某事'在该服务中动态创建的嵌套对象中的服务?(可能是范围问题)
- Angular.js的多个rest调用范围问题
- Angular-$http范围问题
- setTimeout范围问题
- NodeJS回调范围问题
- javascript函数的可变范围问题
- 可能存在Javascript范围问题
- 函数之间的Javascript变量范围问题
- 单击视图时的应用器范围问题
- 全球不断改变价值.可能通过引用或范围问题传递?帮助!链接中的详细示例
- 挖空 - 单击绑定到对象函数 - 范围问题
- Angular 在 http 请求后不更新页面(范围问题?