Skip to content

Commit bbf4dd1

Browse files
committed
Update README.md
1 parent ceed16f commit bbf4dd1

File tree

2 files changed

+43
-42
lines changed

2 files changed

+43
-42
lines changed

README.md

Lines changed: 43 additions & 37 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,25 @@
1-
semaphore.js
2-
============
1+
# semaphore
32

4-
[![Build Status](https://travis-ci.org/abrkn/semaphore.js.svg?branch=master)](https://travis-ci.org/abrkn/semaphore.js)
3+
[![NPM Package](https://img.shields.io/npm/v/semaphore.svg?style=flat-square)](https://www.npmjs.org/package/semaphore)
4+
[![Build Status](https://img.shields.io/travis/abrkn/semaphore.js.svg?branch=master&style=flat-square)](https://travis-ci.org/abrkn/semaphore.js)
55

6-
Install:
6+
[![js-standard-style](https://cdn.rawgit.com/feross/standard/master/badge.svg)](https://github.com/feross/standard)
7+
8+
9+
## Installation
10+
11+
```
712
npm install semaphore
13+
```
14+
15+
## Examples
816

917
Limit simultaneous access to a resource.
1018

1119
```javascript
1220
// Create
13-
var sem = require('semaphore')(capacity);
21+
const Semaphore = require('semaphore')
22+
const sem = new Semaphore(capacity)
1423

1524
// Take
1625
sem.take(fn[, n=1])
@@ -20,49 +29,46 @@ sem.take(n, fn)
2029
sem.leave([n])
2130
```
2231

23-
2432
```javascript
2533
// Limit concurrent db access
26-
var sem = require('semaphore')(1);
27-
var server = require('http').createServer(req, res) {
28-
sem.take(function() {
29-
expensive_database_operation(function(err, res) {
30-
sem.leave();
31-
32-
if (err) return res.end("Error");
33-
34-
return res.end(res);
35-
});
36-
});
37-
});
34+
const Semaphore = require('semaphore')
35+
const sem = new Semaphore(1)
36+
const server = require('http').createServer((req, res) => {
37+
sem.take(() => {
38+
expensive_database_operation((err, res) => {
39+
sem.leave()
40+
res.end(err === null ? res : 'error')
41+
})
42+
})
43+
})
3844
```
3945

4046
```javascript
4147
// 2 clients at a time
42-
var sem = require('semaphore')(2);
43-
var server = require('http').createServer(req, res) {
44-
res.write("Then good day, madam!");
45-
46-
sem.take(function() {
47-
res.end("We hope to see you soon for tea.");
48-
sem.leave();
49-
});
50-
});
48+
const Semaphore = require('semaphore')
49+
const sem = new Semaphore(2)
50+
const server = require('http').createServer((req, res) => {
51+
res.write("Then good day, madam!")
52+
53+
sem.take(() => {
54+
res.end("We hope to see you soon for tea.")
55+
sem.leave()
56+
})
57+
})
5158
```
5259

5360
```javascript
5461
// Rate limit
55-
var sem = require('semaphore')(10);
56-
var server = require('http').createServer(req, res) {
57-
sem.take(function() {
58-
res.end(".");
59-
60-
setTimeout(sem.leave, 500)
61-
});
62-
});
62+
const Semaphore = require('semaphore')
63+
const sem = new Semaphore(10)
64+
const server = require('http').createServer((req, res) => {
65+
sem.take(() => {
66+
res.end(".")
67+
setTimeout(() => sem.leave(), 500)
68+
})
69+
})
6370
```
6471

65-
License
66-
===
72+
## License
6773

6874
MIT

npm-shrinkwrap.json

Lines changed: 0 additions & 5 deletions
This file was deleted.

0 commit comments

Comments
 (0)