Promise.all not waiting for next promise JS











up vote
-1
down vote

favorite












I am trying to query dynamoDb using promise. But when I do promise.all, it is not waiting for nested promises. I am not sure what might be wrong here.






var promises = 
items.itemsList.forEach(function (item) {
// more code fillings params
var promise = dynamodb.query(params).promise()
.then(data => {
// Do more stuff with data
if (typeof data.LastEvaluatedKey != "undefined") {
params.ExclusiveStartKey = data.LastEvaluatedKey;
// Below is nested promise
return dynamodb.query(params).promise();

}
});

promises.push(promise);

});

return Promise.all(promises)
.then( data => {
console.log("all promise succeed");
}, error => {
console.log("error");
});





I am expecting promise.all to wait for all nested promised to complete before it returns. But when I run the code, promise.all just wait for main promises and does not wait for nested promise.










share|improve this question
























  • Illegal return statement? Is this in a function?
    – Electrox Mortem
    Nov 10 at 20:53










  • Other than missing a return for else inside first then() your code looks right structurally
    – charlietfl
    Nov 10 at 20:56








  • 1




    @ElectroxMortem - no. this function is called from an async function. and I am doing await on this function
    – Anup
    Nov 10 at 21:03






  • 1




    @ElectroxMortem - Yes, I am not awaiting inside this function, I am awaiting while calling this function from some other async function.
    – Anup
    Nov 10 at 21:12






  • 1




    Then, please delete your question since it is no longer relevant or correct.
    – jfriend00
    Nov 10 at 23:38















up vote
-1
down vote

favorite












I am trying to query dynamoDb using promise. But when I do promise.all, it is not waiting for nested promises. I am not sure what might be wrong here.






var promises = 
items.itemsList.forEach(function (item) {
// more code fillings params
var promise = dynamodb.query(params).promise()
.then(data => {
// Do more stuff with data
if (typeof data.LastEvaluatedKey != "undefined") {
params.ExclusiveStartKey = data.LastEvaluatedKey;
// Below is nested promise
return dynamodb.query(params).promise();

}
});

promises.push(promise);

});

return Promise.all(promises)
.then( data => {
console.log("all promise succeed");
}, error => {
console.log("error");
});





I am expecting promise.all to wait for all nested promised to complete before it returns. But when I run the code, promise.all just wait for main promises and does not wait for nested promise.










share|improve this question
























  • Illegal return statement? Is this in a function?
    – Electrox Mortem
    Nov 10 at 20:53










  • Other than missing a return for else inside first then() your code looks right structurally
    – charlietfl
    Nov 10 at 20:56








  • 1




    @ElectroxMortem - no. this function is called from an async function. and I am doing await on this function
    – Anup
    Nov 10 at 21:03






  • 1




    @ElectroxMortem - Yes, I am not awaiting inside this function, I am awaiting while calling this function from some other async function.
    – Anup
    Nov 10 at 21:12






  • 1




    Then, please delete your question since it is no longer relevant or correct.
    – jfriend00
    Nov 10 at 23:38













up vote
-1
down vote

favorite









up vote
-1
down vote

favorite











I am trying to query dynamoDb using promise. But when I do promise.all, it is not waiting for nested promises. I am not sure what might be wrong here.






var promises = 
items.itemsList.forEach(function (item) {
// more code fillings params
var promise = dynamodb.query(params).promise()
.then(data => {
// Do more stuff with data
if (typeof data.LastEvaluatedKey != "undefined") {
params.ExclusiveStartKey = data.LastEvaluatedKey;
// Below is nested promise
return dynamodb.query(params).promise();

}
});

promises.push(promise);

});

return Promise.all(promises)
.then( data => {
console.log("all promise succeed");
}, error => {
console.log("error");
});





I am expecting promise.all to wait for all nested promised to complete before it returns. But when I run the code, promise.all just wait for main promises and does not wait for nested promise.










share|improve this question















I am trying to query dynamoDb using promise. But when I do promise.all, it is not waiting for nested promises. I am not sure what might be wrong here.






var promises = 
items.itemsList.forEach(function (item) {
// more code fillings params
var promise = dynamodb.query(params).promise()
.then(data => {
// Do more stuff with data
if (typeof data.LastEvaluatedKey != "undefined") {
params.ExclusiveStartKey = data.LastEvaluatedKey;
// Below is nested promise
return dynamodb.query(params).promise();

}
});

promises.push(promise);

});

return Promise.all(promises)
.then( data => {
console.log("all promise succeed");
}, error => {
console.log("error");
});





I am expecting promise.all to wait for all nested promised to complete before it returns. But when I run the code, promise.all just wait for main promises and does not wait for nested promise.






var promises = 
items.itemsList.forEach(function (item) {
// more code fillings params
var promise = dynamodb.query(params).promise()
.then(data => {
// Do more stuff with data
if (typeof data.LastEvaluatedKey != "undefined") {
params.ExclusiveStartKey = data.LastEvaluatedKey;
// Below is nested promise
return dynamodb.query(params).promise();

}
});

promises.push(promise);

});

return Promise.all(promises)
.then( data => {
console.log("all promise succeed");
}, error => {
console.log("error");
});





var promises = 
items.itemsList.forEach(function (item) {
// more code fillings params
var promise = dynamodb.query(params).promise()
.then(data => {
// Do more stuff with data
if (typeof data.LastEvaluatedKey != "undefined") {
params.ExclusiveStartKey = data.LastEvaluatedKey;
// Below is nested promise
return dynamodb.query(params).promise();

}
});

promises.push(promise);

});

return Promise.all(promises)
.then( data => {
console.log("all promise succeed");
}, error => {
console.log("error");
});






javascript node.js amazon-web-services promise dynamodb-queries






share|improve this question















share|improve this question













share|improve this question




share|improve this question








edited Nov 10 at 20:57

























asked Nov 10 at 20:50









Anup

1142314




1142314












  • Illegal return statement? Is this in a function?
    – Electrox Mortem
    Nov 10 at 20:53










  • Other than missing a return for else inside first then() your code looks right structurally
    – charlietfl
    Nov 10 at 20:56








  • 1




    @ElectroxMortem - no. this function is called from an async function. and I am doing await on this function
    – Anup
    Nov 10 at 21:03






  • 1




    @ElectroxMortem - Yes, I am not awaiting inside this function, I am awaiting while calling this function from some other async function.
    – Anup
    Nov 10 at 21:12






  • 1




    Then, please delete your question since it is no longer relevant or correct.
    – jfriend00
    Nov 10 at 23:38


















  • Illegal return statement? Is this in a function?
    – Electrox Mortem
    Nov 10 at 20:53










  • Other than missing a return for else inside first then() your code looks right structurally
    – charlietfl
    Nov 10 at 20:56








  • 1




    @ElectroxMortem - no. this function is called from an async function. and I am doing await on this function
    – Anup
    Nov 10 at 21:03






  • 1




    @ElectroxMortem - Yes, I am not awaiting inside this function, I am awaiting while calling this function from some other async function.
    – Anup
    Nov 10 at 21:12






  • 1




    Then, please delete your question since it is no longer relevant or correct.
    – jfriend00
    Nov 10 at 23:38
















Illegal return statement? Is this in a function?
– Electrox Mortem
Nov 10 at 20:53




Illegal return statement? Is this in a function?
– Electrox Mortem
Nov 10 at 20:53












Other than missing a return for else inside first then() your code looks right structurally
– charlietfl
Nov 10 at 20:56






Other than missing a return for else inside first then() your code looks right structurally
– charlietfl
Nov 10 at 20:56






1




1




@ElectroxMortem - no. this function is called from an async function. and I am doing await on this function
– Anup
Nov 10 at 21:03




@ElectroxMortem - no. this function is called from an async function. and I am doing await on this function
– Anup
Nov 10 at 21:03




1




1




@ElectroxMortem - Yes, I am not awaiting inside this function, I am awaiting while calling this function from some other async function.
– Anup
Nov 10 at 21:12




@ElectroxMortem - Yes, I am not awaiting inside this function, I am awaiting while calling this function from some other async function.
– Anup
Nov 10 at 21:12




1




1




Then, please delete your question since it is no longer relevant or correct.
– jfriend00
Nov 10 at 23:38




Then, please delete your question since it is no longer relevant or correct.
– jfriend00
Nov 10 at 23:38

















active

oldest

votes











Your Answer






StackExchange.ifUsing("editor", function () {
StackExchange.using("externalEditor", function () {
StackExchange.using("snippets", function () {
StackExchange.snippets.init();
});
});
}, "code-snippets");

StackExchange.ready(function() {
var channelOptions = {
tags: "".split(" "),
id: "1"
};
initTagRenderer("".split(" "), "".split(" "), channelOptions);

StackExchange.using("externalEditor", function() {
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled) {
StackExchange.using("snippets", function() {
createEditor();
});
}
else {
createEditor();
}
});

function createEditor() {
StackExchange.prepareEditor({
heartbeatType: 'answer',
convertImagesToLinks: true,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: 10,
bindNavPrevention: true,
postfix: "",
imageUploader: {
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
},
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
});


}
});














 

draft saved


draft discarded


















StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53243276%2fpromise-all-not-waiting-for-next-promise-js%23new-answer', 'question_page');
}
);

Post as a guest















Required, but never shown






























active

oldest

votes













active

oldest

votes









active

oldest

votes






active

oldest

votes
















 

draft saved


draft discarded



















































 


draft saved


draft discarded














StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53243276%2fpromise-all-not-waiting-for-next-promise-js%23new-answer', 'question_page');
}
);

Post as a guest















Required, but never shown





















































Required, but never shown














Required, but never shown












Required, but never shown







Required, but never shown

































Required, but never shown














Required, but never shown












Required, but never shown







Required, but never shown







Popular posts from this blog

Florida Star v. B. J. F.

Danny Elfman

Lugert, Oklahoma