Reputation: 637
I'm trying to understand Promises as best as I can.
I was wondering if there's a way of returning the data after the promise had been resolved without chaining as much as I have
Basically i was trying to push a new location into the locs array.
loc.service.js :
export const locService = {
getLocs,
};
const locs = [
{ name: 'Greatplace', lat: 32.047104, lng: 34.832384 },
{ name: 'Neveragain', lat: 32.047201, lng: 34.832581 },
];
function getLocs() {
return new Promise((resolve, reject) => {
setTimeout(() => {
resolve(locs);
}, 100);
});
}
map.service.js :
const place = prompt('Enter place name');
if (!place) {
alert('Please enter a valid input');
} else {
locService.getLocs().then(locService.setLoc(place, event.latLng));
locService.getLocs().then((locs) => {
storageService.save(PLACE_KEY, locs);
thanks a bunch
Upvotes: 1
Views: 366
Reputation: 1124
Yes. check async/await
syntax.
using async/await
instead of the .then
chain.
const place = prompt('Enter place name');
if (!place) {
alert('Please enter a valid input');
} else {
const locs = await locService.getLocs()
storageService.save(PLACE_KEY, locs);
don't forget to add async
on your wrapping function. or add another async
function if you don't want to change how it behave.
funcName = async ()=>{
// the code
}
Upvotes: 1