2011-02-03 225 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); 
    } 
});