2011-02-03 118 views

回答

3
var value; 

statement.executeAsync({ 
    handleResult : function(aResultSet) { 
    value = 1; 
    }, 
    handleCompletion : function(aReason) { 
    print(value); 
    } 
}); 
+0

遐我试过了,它不工作... 所以该函数在短时间内被执行多次,我希望它只运行一次代码,我通过设置全局标志来做到这一点,但它不工作 – 2011-02-03 05:16:46

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); 
    } 
});