-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。エラーは再現するのが難しいため、で使用されますがros connection、少なくとも1つの関数に正常に入ると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 に答える