https://github.com/axetroy/deno_defer
Implement Golang's defer in Deno
https://github.com/axetroy/deno_defer
deno
Last synced: about 1 month ago
JSON representation
Implement Golang's defer in Deno
- Host: GitHub
- URL: https://github.com/axetroy/deno_defer
- Owner: axetroy
- License: mit
- Created: 2019-03-12T11:55:08.000Z (over 7 years ago)
- Default Branch: master
- Last Pushed: 2019-06-26T06:59:56.000Z (about 7 years ago)
- Last Synced: 2025-04-09T11:13:53.736Z (about 1 year ago)
- Topics: deno
- Language: TypeScript
- Homepage:
- Size: 11.7 KB
- Stars: 1
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
[](https://travis-ci.com/axetroy/deno-deferred)
### Implement Golang's defer in Deno
### Use Scenes
- Destroy resource.
- Auto Commit or Rollback in Transaction.
- Defer job to do.
### Usage
run the example code with following command
```bash
deno run https://github.com/axetroy/deno_defer/raw/master/example.ts
```
```typescript
import { deferred } from "https://github.com/axetroy/deno_defer/raw/master/mod.ts";
(async () => {
const fn = deferred(async ({ defer }) => {
console.log("1. create database connection...");
defer(async () => {
console.log("5. destroy database connection!");
});
console.log("2. insert test data...");
defer(async () => {
console.log("6. remove test data!");
});
console.log("3. report to remote server...");
defer(async () => {
console.log("7. close remote connection!");
});
console.log("4. job done.");
});
await fn();
})();
// 1. create database connection...
// 2. insert test data...
// 3. report to remote server...
// 4. job done.
// 5. close remote connection!
// 6. remove test data!
// 7. destroy database connection!
// exit
```
## License
The [MIT License](https://github.com/axetroy/deno-defer/blob/master/LICENSE)