step
An async control-flow library that makes stepping through logic easy. (by creationix)
when
A solid, fast Promises/A+ and when() implementation, plus other async goodies. (by cujojs)
Our great sponsors
step | when | |
---|---|---|
1 | 3 | |
2,211 | 3,440 | |
- | -0.2% | |
0.0 | 1.8 | |
over 6 years ago | about 2 years ago | |
JavaScript | JavaScript | |
MIT License | GNU General Public License v3.0 or later |
The number of mentions indicates the total number of mentions that we've tracked plus the number of user suggested alternatives.
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
step
Posts with mentions or reviews of step.
We have used some of these posts to build our list of alternatives
and similar projects.
-
Easy UI testing with Cypress
import { When, Then, Given } from '@badeball/cypress-cucumber-preprocessor'; Given(`I've opened the npm.com`, () => { cy.visit('https://www.npmjs.com/'); cy.intercept('GET', 'https://www.npmjs.com/search/suggestions?q=step', [ { name: 'step', scope: 'unscoped', version: '1.0.0', description: 'Test', date: '2017-01-06T21:16:57.341Z', links: { npm: 'https://www.npmjs.com/package/step' }, author: { name: 'John Smith', email: '[email protected]', username: 'test' }, publisher: { username: 'test', email: '[email protected]' }, maintainers: [{ username: '[email protected]', email: '[email protected]' }], }, ]).as('getResults'); }); When('I typed a phrase in the search field', () => { cy.get('input[name="q"]').type('step'); }); Then('I should see the results in the dropdown menu', () => { cy.wait('@getResults'); cy.get('ul[role="listbox"] li').should('have.length', 1).should('have.text', 'stepTest1.0.0'); });
when
Posts with mentions or reviews of when.
We have used some of these posts to build our list of alternatives
and similar projects. The last one was on 2021-07-02.
-
If you are making a library, take a good look at this list!
looking at you "When"!
-
I made a small library for handling async events in a type-safe fashion
If you're wondering, number 2 has happened to me years ago, and required debugging a Promises library (back when Promises weren't native): https://github.com/cujojs/when/issues/325
-
Introduction to Asynchronous JavaScript
Promises are a popular way of getting rid of callback hell. Originally it was a type of construct introduced by JavaScript libraries like Q and when.js, but these types of libraries became popular enough that promises are now provided natively in ECMAScript 6.
What are some alternatives?
When comparing step and when you can also consider the following projects:
Bluebird - :bird: :zap: Bluebird is a full featured promise library with unmatched performance.
cfssl - CFSSL: Cloudflare's PKI and TLS toolkit
q - A promise library for JavaScript
async - Async utilities for node and the browser
contra - :surfer: Asynchronous flow control with a functional taste to it
ObjectEventTarget - A same behaviour EventTarget prototype, that can work with any object from JavaScript
Javascript State Machine - A javascript finite state machine library
modern-async - A modern JavaScript tooling library for asynchronous operations using async/await, promises and async generators