无法更改函数中的JSON变量

时间:2013-02-09 20:07:00

标签: javascript json ros

更改JSON变量导致以下代码段失败:

var data = {status: ''};

rosconnection.setOnOpen(function (e) {
        data.status = 'Succeeded';
        alert('success');
});

rosconnection.setOnError(function (e) {
        data.status = 'Failed';
        alert('fail');
});

data保持为空,但在alert内调用rosconnection.setOnOpen。错误很难复制,因此它在ros connection上使用,但我100%确定它至少进入了其中一个功能。

1 个答案:

答案 0 :(得分:2)

您没有告诉我们您如何知道状态没有改变......

我的赌注是:如果没有更改data,您就无法看到警报,因此您的代码可能看起来像这样:

var data = {status: ''};

rosconnection.setOnOpen(function (e) {
        data.status = 'Succeeded';
        alert('success');
});

rosconnection.setOnError(function (e) {
        data.status = 'Failed';
        alert('fail');
});

alert(data.status);

所以状态尚未确定。在回调中检查它。 AJAX ...
AJAX是什么意思? A用于异步,这意味着它将在未来(近或远)的某个时间触发,你无法知道何时,有时甚至不会被调用。

更新版本:

var data = {status: ''};

rosconnection.setOnOpen(function (e) {
        data.status = 'Succeeded';
        alert(data.status);
});

rosconnection.setOnError(function (e) {
        data.status = 'Failed';
        alert(data.status);
});