-1

以下代码段更改 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。该错误很难复制,因此它在 a 上使用ros connection,但我 100% 确定它成功进入了至少一个功能。

4

1 回答 1

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);
});
于 2013-02-09T20:09:06.590 回答