Ways to handle a Promise.all() even when facing rejections

I am relatively new to this and I'm thinking that maybe promise.all() isn't the right approach for what I'm trying to achieve. I have a set of resources I need to fetch using HTTP.

Some of these resources may not be available to certain account types, so I was thinking, let the ones that fail due to server-side permission simply fail and move on from there.

promise.all([
    http.get('bookings'),
    http.get('users'),
    http.get('listings')
])
.then(valuse => assign(values))
.catch(err => makeAnError(err))

For example, if http.get('users') fails, the entire promise.all will reject and none of the other values will be assigned since the resolve function never gets executed.

What are some recommendations for addressing this issue?

Answer №1

This is my approach

Promise.prototype.always = function always() {
    return this.then(result=>({fulfilled: true, result}), reason=>({fulfilled: false, reason}));
};

Next, implement the following code

promise.all([
    http.get('bookings').always(),
    http.get('users').always(),
    http.get('listings').always()
])
.then(values => assign(values)) // Make sure to verify each value.fulfilled == true before using value.result
.catch(err => makeAnError(err))

Similar questions

If you have not found the answer to your question or you are interested in this topic, then look at other similar questions below or use the search

How about "Extract information from a database and split it using a specified delimiter?"

I am working with a table that has two columns. The first column represents the ID, while the second column contains a list structured like this: productid:3,productname:EggBiryani,quantity1price:100; productid:5,productname:Vegetable Biryani,quantity1pri ...

Denied running the inline script in Redocly

Experimenting with redoc-cli (https://github.com/Redocly/redoc/) in order to generate static documentation. Unfortunately, encountered some stumbling blocks due to errors related to the Content-Security-Policy, which seems to be blocking JavaScript code ex ...

Sending a JavaScript variable to a Ruby on Rails controller for passing it to an API for further processing

My index.html file contains a Google API map implementation. <!DOCTYPE html> <html> <head> <meta name="viewport" content="initial-scale=1.0, user-scalable=no"> <meta charset="utf-8"> <style> html, body { height: ...

Is it possible to use ajax to display the combination of multiple strings?

In my code, I have a span containing some text. By default, the <span class="switcher__result"> has a CSS property of display: none. However, when my <button class="switcher switcher__Last collapsible"> changes the text, the result span switche ...

A Comparison of Performance between If and Filter Operators in RxJS

Let's take a look at an example using RxJS. Type X: [utilizing filter] this.userService.afAuth.authState .pipe(filter(user => !!user)) .subscribe( _ => this.router.navigate(["/anything"]) ) Type Y: [utilizing if statement] this.u ...

AJAX list refresh, fetch additional items and tally

Looking for a solution to update the values of listUsernames and numUsernames after adding an item? Check out this scenario: <ul id='usernameList'> <li class='username'>John</li> <li class='username&apo ...

Crafty Checkbox Selector [ leveraging jquery ]

I have created some fake checkboxes using elements like <span> after the real checkbox and they are working fine! However, I am having trouble counting the checked checkboxes when a checkbox is clicked. I have tried using methods like: $(".elm:chec ...

Using Angular $resources in the query() function often results in the error message "Undefined is not a function

When I try to call the query() function using ngResource, I keep getting an error message saying "Undefined is not a function." [demo.js] var app = angular.module('StarterApp', ['ngResource']); app.factory("resourceFactory", function ...

I am encountering an issue where the useState hook is returning an undefined value on separate components, even after

When setting up a login context, I wrap all my routes with the context provider and pass the initial value using useState: <userContext.Provider value={{loggedUser, setLoggedUser}}> In LogInMenu.jsx, which is responsible for setting the loggedUser ( ...

Load a JSON file into the app.js of your project

Could someone please help me figure out how to successfully load a JSON file into my project's app.js? I've tried using the following code snippet: var j = require('./JSON1'); However, it didn't work as expected. My goal is to la ...

Implemented a deletion feature in the list, however, certain items that have been checked are not being removed

I am currently participating in the Wes Boros JS 30 challenge, where we created a list of our favorite foods. As part of the challenge, we were tasked with implementing a 'select all' function, an 'unselect all' function, and a 'de ...

Errors and warnings caught off guard while running json-server with the --watch flag

I'm having some trouble using json-server in the following way: $ json-server --watch db.json Every time I try to run that command, I encounter errors or warnings depending on the version of json-server that is installed: 1.0.0-alpha.1-1.0.0-alpha.1 ...

Having troubles with delayed state changes due to setState being used within useEffect

I have been working on a slider effect using React Hooks and Redux, and here is the code I am using: const Barchart = ({chartData}) => { let newArray = [] let len = chartData.length const [XArray,setXArray]=useState([chartData]) const [ ...

Struggling to store pushed data accurately into an array using node.js

) Currently, I am tackling a challenging node.js express custom API project. The issue arises when attempting to push data... This is the snippet of my code: module.exports = function(config, steamClient, csgo, database, teamspeakClient, router) { var a ...

Arranging Material UI tabs on both sides

I'm currently working with Material UI tabs and I'm trying to achieve a layout where some tabs are positioned to the left and others to the right. For instance, if I have 5 tabs, I want 3 on the left and 2 on the right. I've tried placing th ...

Simple steps for Mocking an API call (Get Todos) using ComponentDidMount in React with Typescript, Jest, and Enzyme

About the application This application serves as a basic To Do List. It retrieves tasks from an API located at https://jsonplaceholder.typicode.com/todos?&_limit=5. Objective of the project The main goal is to test an API call that triggers ...

Error: jQuery is unable to access the property 'xxx' because it is undefined

While attempting to make a post request from the site to the server with user input data, I encountered an error message saying TypeError: Cannot read property 'vehicle' of undefined as the response. Here is the HTML and script data: <!DOCTY ...

Uploading CouchDB document attachments using an HTML form and jQuery functionality

I am currently in the process of developing a web form that, upon submission, will generate a couchdb document and attach file(s) to it. I have followed tutorials and visited forums that suggest a two-stage process similar to futon's approach. While I ...

Allowing SVGs to be clickable without disrupting the functionality of YouTube videos

I'm experiencing an issue with the overlapping of the svg and YouTube elements. If you hover your mouse over, just to the right of the svg and click, instead of opening the video, it redirects you back to the previous page. Clicking on the area betw ...

Implementing Cross-Origin Resource Sharing (CORS) in Express.js to facilitate communication between various ports

Struggling to make API calls using React and Axios from my front end (localhost:3000) to my back end (localhost:4567) is proving challenging. The consistent error message I encounter is: The CORS policy is blocking access to XMLHttpRequest at 'localh ...