🎉 We just launched guppy - The tinker tool for Javascript and Sails developers 🎉
The Sailscasts Blog

How to simulate latency in a Sails action

Having trouble testing your loading state when making a request to your local Sails API from your local frontend? Here is how to simulate latency...

I was going through my timeline on Twitter and came across this tweet by Mohamed Said on how he simulates latency in his local APIs.

Local frontends fetches data very quickly from local APIs. Which makes you miss the loading state. - Mohamed Said

Seeing the above tweet I recalled that Sails actually made provision for such a scenario and provides us with a property in our actions2 actions to do just that.

The simulateLatency property

Sails made it super easy to simulate latency in your actions2 actions. To do so pass in the number of milliseconds you want to simulate the latency for i.e how long you want the latency on that action to be, to a top-level simulateLatency property in your actions options.

// api/controllers/user/signin.js
module.exports = {
  friendlyName: 'Signin',
  description: 'Signs in a user',

  // Simulate latency for 1000 milliseconds
  simulateLatency: 1000

  inputs: {},

  exits: {},

  fn: async () {}
}

In the above example action, I omitted the rest of the action to focus on the simulateLatency property.

Conclusion

Alright! So now you have seen how not to miss loading state in your local frontend when making a request to a local Sails API. Happy deploying 🚀

The Sailcasts Blog Newsletter

Get notified 🔔 when new articles are published on the Sailcasts Blog.