You're Invited:Meet the Socket Team at BlackHat and DEF CON in Las Vegas, Aug 7-8.RSVP
Socket
Socket
Sign inDemoInstall

inflight

Package Overview
Dependencies
Maintainers
4
Versions
7
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

inflight

Add callbacks to requests in flight to avoid async duplication


Version published
Weekly downloads
45M
increased by0.55%
Maintainers
4
Install size
12.8 kB
Created
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

Package last updated on 13 Oct 2016

Did you know?

Socket

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
  • Changelog

Packages

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc