我可以将两个函数绑定到openCursor的onsuccess事件吗? 我想这样做是为了填充第一行中的初始值。
>>> dict(my_dict)
{'Wed': 'Wednesday', 'Sun': 'Sunday', 'Fri': 'Friday', 'Tue': 'Tuesday', 'Mon': 'Monday', 'Thu': 'Thursday', 'Sat': 'Saturday'}

答案 0 :(得分:1)
是。通常,onsuccess只是添加事件监听器的语法糖。主要区别在于设置onsuccess会覆盖所有其他事件侦听器,而使用正确语法添加事件侦听器则不会。您的代码将无法正常工作,因为第二次设置onsuccess只会覆盖第一个侦听器。
尝试以下方法:
function foo() {
var request = store.openCursor();
request.addEventListener('success', firstListenerFunction);
request.addEventListener('success', secondListenerFunction);
}
无法保证首先会通知哪个听众。通常它将是第一个侦听器,因为大多数实现以注册顺序通知侦听器。但这并不能保证。
此外,每次都会通知两个听众。请记住性能影响。
IDBRequest等各种indexedDB API对象基本上都是从EventTarget类继承的。 Here是学习EventTarget的有用阅读材料。 EventTarget遍布各处。