[PWA] 14. Loop cursor
- import idb from 'idb';
- var dbPromise = idb.open('test-db', 4, function (upgradeDb) {
- switch (upgradeDb.oldVersion) {
- case 0:
- // keyval store is already created at version 1
- var keyValStore = upgradeDb.createObjectStore('keyval');
- keyValStore.put("world", "hello");
- case 1:
- // new version
- upgradeDb.createObjectStore('people', {keyPath: 'name'});
- case 2:
- var peopleStore = upgradeDb.transaction.objectStore('people');
- peopleStore.createIndex('animal', 'favoriteAnimal');
- case 3:
- var peopleStore = upgradeDb.transaction.objectStore('people');
- peopleStore.createIndex('age', 'age');
- }
- });
- // read "hello" in "keyval"
- dbPromise.then(function (db) {
- var tx = db.transaction('keyval'); // Open a transaction
- var keyValStore = tx.objectStore('keyval'); // read the store
- return keyValStore.get('hello'); // get value by key
- }).then(function (val) {
- console.log('The value of "hello" is:', val);
- });
- dbPromise.then(function (db) {
- var tx = db.transaction('people', 'readwrite');
- var peopleStore = tx.objectStore('people');
- peopleStore.put({
- name: "John", // name is the key
- age: 23,
- favoriteAnimal: 'cat'
- });
- peopleStore.put({
- name: "Joe", // name is the key
- age: 21,
- favoriteAnimal: 'cat'
- });
- peopleStore.put({
- name: "Jie", // name is the key
- age: 22,
- favoriteAnimal: 'dog'
- });
- peopleStore.put({
- name: "Jay", // name is the key
- age: 24,
- favoriteAnimal: 'dog'
- });
- return tx.complete;
- }).then(function () {
- console.log("People are added");
- });
- dbPromise.then(function (db) {
- var tx = db.transaction('people', 'readwrite');
- var peopleStore = tx.objectStore('people');
- var ageIndex = peopleStore.index('age');
- return ageIndex.openCursor();
- }).then(function (cursor) {
- if (!cursor) return;
- return cursor.advance(1); // skip the first person
- }).then(function logPerson(cursor) {
- if(cursor.value.name == "Jie"){
- cursor.delete(); // delete
- }
- if(cursor.value.name == "Jay"){
- console.log("Cursor at:", cursor.value.name);
- var joe = cursor.value;
- joe.favoriteAnimal = "Bird";
- cursor.update(joe); // update
- }
- return cursor.continue().then(logPerson);
- }).then(function () {
- console.log("DONE");
- });
[PWA] 14. Loop cursor的更多相关文章
- Oracle PLSQL Demo - 10.For Loop遍历游标[FOR LOOP CURSOR]
declare cursor cur_emp is select t.* from scott.emp t; begin for r_emp in cur_emp loop dbms_output.p ...
- oracle中REF Cursor用法
from:http://www.111cn.net/database/Oracle/42873.htm 1,什么是 REF游标 ? 动态关联结果集的临时对象.即在运行的时候动态决定执行查询. 2,RE ...
- 内核链表list.h
stddef.h #define offsetof(TYPE, MEMBER) ((size_t) &((TYPE *)0)->MEMBER) list.h #ifndef _LINUX ...
- Linux 内核 链表 的简单模拟(2)
接上一篇Linux 内核 链表 的简单模拟(1) 第五章:Linux内核链表的遍历 /** * list_for_each - iterate over a list * @pos: the & ...
- linux内核数据结构之链表
linux内核数据结构之链表 1.前言 最近写代码需用到链表结构,正好公共库有关于链表的.第一眼看时,觉得有点新鲜,和我之前见到的链表结构不一样,只有前驱和后继指针,而没有数据域.后来看代码注释发现该 ...
- linux内核数据结构之链表【转】
转自:http://www.cnblogs.com/Anker/p/3475643.html 1.前言 最近写代码需用到链表结构,正好公共库有关于链表的.第一眼看时,觉得有点新鲜,和我之前见到的链表结 ...
- 韩顺平Oracle笔记
韩顺平Oracle笔记 分类: DataBase2011-09-07 10:24 3009人阅读 评论(0) 收藏 举报 oracle数据库sqljdbcsystemstring 目录(?)[-] ...
- Oracle PLSQL游标、游标变量的使用
参考文章:https://www.cnblogs.com/huyong/archive/2011/05/04/2036377.html 在 PL/SQL 程序中,对于处理多行记录的事务经常使用游标来实 ...
- 《Linux设备驱动程序》编译LDD3的scull驱动问题总结***
由于Linux内核版本更新的原因,LDD3(v2.6.10)提供的源码无法直接使用,下面是本人编译scull源码时出现的一些问题及解决方法.编译环境:Ubuntu 10.04 LTS(kernel v ...
随机推荐
- php5.6安装
# yum --enablerepo=remi,remi-php56 install php-fpm php-common php-mysql php-opcache php-pear php-gd ...
- login-登录
<!DOCTYPE html><html><head><meta charset="UTF-8"><title>Inse ...
- ecshop数据表
ecs_account_log:账户变动日志(注册用户充值.支付等记录信息) ecs_ad:广告表 ecs_admin_action:管理员权限表(定义了128项功能操作) ecs_admin_log ...
- POJ1611-The Suspects-ACM
The Suspects Time Limit: 1000MS Memory Limit: 20000K Total Submissions: 23002 Accepted: 11171 De ...
- DEDECMS会员注册如何配置邮箱发送邮件功能
网站邮件功能是一个非常基础和有效的通信工具,配合dede会员注册邮件验证功能可以大量的拒绝垃圾注册用户.那么如何配置DEDECMS会员注册邮箱发送邮件功能? 1:配置dedecms网站发信EMAI ...
- Github Https方式push错误”Empty reply from server”
1 2 3 4 5 6 7 8 9 10 2014-11-19 20:41:30.130 GitHub for Mac Login[2595:326257] AskPass ...
- CodeChef FNCS
题面:https://www.codechef.com/problems/FNCS 题解: 我们考虑对 n 个函数进行分块,设块的大小为S. 每个块内我们维护当前其所有函数值的和,以及数组中每个元素对 ...
- var a =a || {}
- 用链表解决if语句过多的问题(C/C++实现)
起因 http://www.cnblogs.com/code-style/p/3499408.html 设计模式的解决方案(基于python语言) http://www.cnblogs.com/cod ...
- Node.js Express框架
Express 介绍 Express是一个最小的,灵活的Node.js Web应用程序框架,它提供了一套强大的功能来开发Web和移动应用程序. 它有助于基于Node Web应用程序的快速开发.下面是一 ...