var del = function(eID,callBack)
{ var ab=1;
myDb.transaction(TableName, 'readwrite').objectStore(TableName).delete(eID).onsuccess = function()
{
console.log('内部执行:'+ab);
ab=ab+1;
if(callBack && typeof callBack == 'function'){callBack(eID)}
}
}
var a = 1;
function delFn(data)
{
console.log('回调执行:'+a)
a = a+1;
}
说明:根据eID查询到的数据有2行。
控制台输出:
内部执行:1
回调执行:1
内部执行:1
回调执行:2
为什么??内部执行的时候虽然执行了两次,但是并没有给a加上1。但是回调函数确实实在在的加了一次。
是我代码问题还是onsuccess 的触发机制问题? 或者可以在onsuccess 有判断条件??
2 个回复
赞城问哈 (作者)
同样的问题也出现在 IndexedDB 的 get put add 上。
Trust - 少说废话
内容不全,建议提供详细的demo。
建议详细阅读indexDB相关的API,并且参考网上其他开发者的分享。
有个简单的demo,success的触发正常。