Reputation: 230
I'm trying to return value of pagenumber
from inner function to another. But due to asynchronous nature of javascript. I'm unable to do it as outer function gets executed earlier as compared to inner one. I'm trying to use callback to it but it will produce error if i call outer function(from somewhere else) without callback. My code is,
'GrabNewResponse':function(credentials,width){
let pagenumber=0;
app.request.get(url,function(data){
let result=JSON.parse(data);
pagenumber=result.data.pagenumber;
if(result.success===true){
app.dialog.close();
}
});
return pagenumber;
},
Upvotes: 0
Views: 555
Reputation: 55729
Asynchronous operations in Javascript cannot be effectively handled without callbacks, promises or the async/await keywords.
const request = () => new Promise((resolve, reject) =>
app.request.get(url, (response) => response.success
? resolve(response)
: reject(response)))
const o = {
async GrabNewResponse(credentials, width) {
const response = JSON.parse(await request(url))
const { data: { pagenumber = 0 } } = response
app.dialog.close()
return pagenumber
}
}
Upvotes: 1