API Namespace store

12 篇文章 0 订阅

Table of Contents

  • Introduction
  • API 
    • create(id: string): Store
    • get(id: string): Store
    • getOrCreate(id: string): Store
    • count: number
    • Interface Store 
      • store.id: string
      • store.set(key: string, value: any): void
      • store.get(key: string): any
      • store.has(key: string): boolean
      • store.size: number

介绍

在通过参数传递数据方面,存储API是对跨JavaScript线程共享可传递数据的必要补充。使用store.set时,数据被封装成JSON并存储在进程堆栈里,因此所有的线程都可以访问这些数据,当用户通过store.get获得这些数据时,它们就被解封了。

尽管非常方便,但是不推荐使用store来传递带有事务或请求的值,因为这种方式比单纯传递对象数据要耗费资源(比如会有锁等)。此外,虽然有垃圾回收机制,但还是希望开发者能够在使用完后删除key。

API

调用下面的APIs来创建、获得和操作store。

create(id: string): Store

通过传入一个标识字符串来创建store,之后可用该字符串来get这个store。当所有JavaScript虚拟机中的所有指向该store的引用都清除了,这个store将被销毁。因此在使用store时,保留一个全局或者模块内的引用是一个非常好的选择。如果这个id已被占用则会抛错。

例如: 
var store = napa.store.create(‘store1’);

get(id: string): Store

该方法根据传入的字符串标识可以得到store的引用。如果该id不存在,则返回undefined。 
例如: 
var store = napa.store.get(‘store1’);

getOrCreate(id: string): Store

该方法根据传入的字符串标识可以得到store的引用,如果该id不存在,则创建一个。当在每个zone的worker里执行代码创建store时非常便捷,因为它不会破坏对称性。 
例如: 
var store = napa.store.getOrCreate(‘store1’);

count: number

它返回活跃的store的数量。

Store接口

通过这些接口,用户可以跨多个JavaScript虚拟机put和get数据。

store.id: string

获得该store的id

store.set(key: string, value: any): void

该方法向store中存入一个可传递的值,并传入一个该值的引用。如果这个引用已经存在,新值会覆盖旧值。 
例如: 
store.set(‘status’, 1);

store.get(key: string): any

该方法通过id获得可传递的值。如果id不存在,返回undefined。 
例如: 
var value = store.get(‘status’); 
assert(value === 1);

store.has(key: string): boolean

该方法区分当前store里是否存在该id。 
例如: 
assert(store.has(‘status’))

store.size: number

该方法统计当前store中key的数量。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值