Socket
Socket
Sign inDemoInstall

inflight

Package Overview
Dependencies
2
Maintainers
4
Versions
7
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

inflight

Add callbacks to requests in flight to avoid async duplication


Version published
Maintainers
4
Weekly downloads
42,496,373
decreased by-9.76%

Weekly downloads

Package description

What is inflight?

The inflight npm package is used to manage and track the state of asynchronous operations to ensure that the same operation isn't initiated multiple times before it completes. It's particularly useful when dealing with file system operations or any other tasks that should not be duplicated.

What are inflight's main functionalities?

Tracking inflight operations

This code sample demonstrates how to use the inflight package to prevent the same asynchronous operation from being executed multiple times simultaneously. It uses a timeout to simulate an asynchronous operation and ensures that if the operation is already in progress, subsequent calls will not initiate a new one.

const inflight = require('inflight');

function asyncOperation(key, callback) {
  if (inflight(key)) return;
  inflight(key, callback);
  // Perform the operation here
  setTimeout(() => {
    // Operation completed
    inflight(key, null);
    callback();
  }, 1000);
}

asyncOperation('operation1', () => console.log('Operation 1 completed.'));
asyncOperation('operation1', () => console.log('Operation 1 is already in flight.'));

Other packages similar to inflight

Readme

Source

inflight

Add callbacks to requests in flight to avoid async duplication

USAGE

var inflight = require('inflight')

// some request that does some stuff
function req(key, callback) {
  // key is any random string.  like a url or filename or whatever.
  //
  // will return either a falsey value, indicating that the
  // request for this key is already in flight, or a new callback
  // which when called will call all callbacks passed to inflightk
  // with the same key
  callback = inflight(key, callback)

  // If we got a falsey value back, then there's already a req going
  if (!callback) return

  // this is where you'd fetch the url or whatever
  // callback is also once()-ified, so it can safely be assigned
  // to multiple events etc.  First call wins.
  setTimeout(function() {
    callback(null, key)
  }, 100)
}

// only assigns a single setTimeout
// when it dings, all cbs get called
req('foo', cb1)
req('foo', cb2)
req('foo', cb3)
req('foo', cb4)

FAQs

Last updated on 13 Oct 2016

Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc