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 回答