传递参数
问题描述:
我想使用的功能execAsync这里: https://developer.mozilla.org/en/Storage#Asynchronously传递参数
,我想handleResult和handleCompletion之间传递值。类似于
statement.executeAsync({
handleResult: function(aResultSet) {
VALUE = 1
},
handleCompletion: function(aReason) {
print(VALUE);
}
});
什么是最好的办法呢?
答
var value;
statement.executeAsync({
handleResult : function(aResultSet) {
value = 1;
},
handleCompletion : function(aReason) {
print(value);
}
});
答
那么显而易见的是要传递一个对象到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-03 05:16:46