1

ここで execAsync 関数を使用したい: https://developer.mozilla.org/en/Storage#Asynchronously

そして、handleResult と handleCompletion の間で値を渡したいです。何かのようなもの

statement.executeAsync({
  handleResult: function(aResultSet) {
    VALUE = 1
  },

  handleCompletion: function(aReason) {
    print(VALUE);
  }
});

それを行う最良の方法は何ですか?

4

2 に答える 2

3
var value;

statement.executeAsync({
  handleResult : function(aResultSet) {
    value = 1;
  },
  handleCompletion : function(aReason) {
    print(value);
  }
});
于 2011-02-03T05:13:28.740 に答える
0

明らかなことは、executeAsync にオブジェクトを渡していることです。(特に、これは mozIStorageStatementCallback なので、handleError メソッドも持つ必要があります。)したがって、「this」キーワードを使用して、そのオブジェクトに固有のプロパティをオブジェクトに簡単に関連付けることができます。

statement.executeAsync({
  value: 1,
  handleResult: function(aResultSet) {
    this.value = 0;
  },
  handleError: function(aError) {
    this.value = 2;
  },
  handleCompletion: function(aReason) {
    print(this.value);
  }
});
于 2011-02-04T21:35:28.963 に答える