archieve-projects/微信机器人/node_modules/async-map-like/README.md

80 lines
2.4 KiB
Markdown

# async-map-like
[![NPM Version](https://img.shields.io/npm/v/async-map-like?color=brightgreen)](https://www.npmjs.com/package/async-map-like)
[![NPM](https://github.com/huan/async-map-like/actions/workflows/npm.yml/badge.svg)](https://github.com/huan/async-map-like/actions/workflows/npm.yml)
[![TypeScript](https://img.shields.io/badge/%3C%2F%3E-TypeScript-blue.svg)](https://www.typescriptlang.org/)
ECMAScript `Map` like type definition (plus Async).
[![Async ES6 Map Like TypeScript Interface](docs/images/async-es6-map.png)](https://github.com/huan/async-map-like)
It has same API Interface with [Map - JavaScript | MDN](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Map "Map - JavaScript | MDN"), with additional **Async** support.
## Usage
```ts
import { MapLike } from 'async-map-like'
const mapLike: MapLike<string, number> = new Map<string, number>
```
That's it, enjoy the [Duck Typing](https://en.wikipedia.org/wiki/Duck_typing)!
## API Reference
```ts
/**
* ES6 Map like Async API
*/
export interface AsyncMapLike<K = any, V = any> {
size : Promise<number>
get (key: K) : Promise<V | undefined>
set (key: K, value: V) : Promise<void>
has (key: K) : Promise<boolean>
delete (key: K) : Promise<void>
clear () : Promise<void>
entries () : AsyncIterableIterator<[K, V]>
keys () : AsyncIterableIterator<K>
values () : AsyncIterableIterator<V>
[Symbol.asyncIterator]() : AsyncIterableIterator<[K, V]>
forEach (
callbackfn: (
value : V,
key : K,
map : AsyncMapLike<K, V>,
) => void,
thisArg?: AsyncMapLike<K, V>,
): Promise<void>
}
```
## History
### master v1.0 (Nov 27, 2021)
1. Remove sync interface: `[Symbol.toStringTag]()` and `[Symbol.iterator]()`
1. Add async interface: `[Symbol.asyncIterator]()`
### v0.2 (July 25, 2020)
1. Create `MapLike` interface for ES6 Map
1. Create `AsyncMapLike` for ES6 Map like Async interface
## Author
[Huan LI](https://github.com/huan) ([李卓桓](http://linkedin.com/in/zixia)), Microsoft AI MVP, zixia@zixia.net
[![Profile of Huan LI (李卓桓) on StackOverflow](https://stackexchange.com/users/flair/265499.png)](https://stackexchange.com/users/265499)
## Copyright & License
* Docs released under Creative Commons
* Code released under the Apache-2.0 License
* Code & Docs © 2018 Huan LI \<zixia@zixia.net\>