Problems in your code:
show
function doesn't explicitly returns anything; as a result, promise returned by the show
function is fulfilled with the value of undefined
Improvements that can be made in your code:
catch
and finally
blocks are not needed; catch
block is unnecessary because rejected promise returned as a result of catch
block will need to be handled by the code that calls the show
function.
You will need the catch
method or block in the calling code anyways. So, just remove the catch
block and allow the calling code to catch and handle the error
show
function doesn't needs to be async
. You can just return the result of axios.get
or axios.get(...).then(...)
Final version of "show" method:
exports.show = (payload) => {
return axios
.get(`/${module}/${payload}`)
.then((res) => {
return res.data.data;
});
}
You can call this function as:
psm.show(12)
.then(res => console.log(res))
.catch(error => { /* handle the error */ });
Alternate version of show
function:
exports.show = (payload) => {
return axios.get(`/${module}/${payload}`);
}
You can call this version of show
function as:
psm.show(12)
.then(res => console.log(res.data.data))
.catch(error => { /* handle the error */ });