How to get the value of a variable after all successive promises?
I have two asynchronous operations. In the interval between them, the result values are not empty and they are used in the next asynron operation. The fact is that one variable with the result falls into the response object from the server, and the second is empty. In this situation: 'frequency' is array, 'lemms' is object.
try {
const pr = new Promise(async (resolve, reject) => {
try {
const { frequency, lemms } = await freqAnalysis(tokenized, lang)
// frequency is visible in this place
const { result, chunks } = await getTesaurusData(frequency)
// but not in this, i get lemms successfully
resolve({ frequency, lemms, result, chunks })
} catch (err) {
reject(err.message)
}
})
const { frequency, lemms, result, chunks} = await pr
const { tesauruses } = formTesaurusData(frequency, result, chunks)
let options = {
res,
result: {
frequency, // empty array
lemms, // good!
tesaurus: {
tesauruses,
totalWords: frequency.length || null,// null
}
},
message: 'success',
statusCode: 200
}
resp(options)javascript node.js
add a comment |
I have two asynchronous operations. In the interval between them, the result values are not empty and they are used in the next asynron operation. The fact is that one variable with the result falls into the response object from the server, and the second is empty. In this situation: 'frequency' is array, 'lemms' is object.
try {
const pr = new Promise(async (resolve, reject) => {
try {
const { frequency, lemms } = await freqAnalysis(tokenized, lang)
// frequency is visible in this place
const { result, chunks } = await getTesaurusData(frequency)
// but not in this, i get lemms successfully
resolve({ frequency, lemms, result, chunks })
} catch (err) {
reject(err.message)
}
})
const { frequency, lemms, result, chunks} = await pr
const { tesauruses } = formTesaurusData(frequency, result, chunks)
let options = {
res,
result: {
frequency, // empty array
lemms, // good!
tesaurus: {
tesauruses,
totalWords: frequency.length || null,// null
}
},
message: 'success',
statusCode: 200
}
resp(options)javascript node.js
If you have two awaitable function, why put them in a promise? You can just.... await them, no?
– Holger Will
Dec 29 '18 at 10:31
Never ever pass anasync functionas the executor tonew Promise
– Bergi
Dec 29 '18 at 10:38
1
Iffrequencyis an array and you can see it contain elements after it's been returned fromfreqAnalysis(…)but it is empty after thegetTesaurusData(frequency)call, then the only conclusion is thatgetTesaurusDatais broken and removes the elements. Please post the code of that function.
– Bergi
Dec 29 '18 at 10:41
add a comment |
I have two asynchronous operations. In the interval between them, the result values are not empty and they are used in the next asynron operation. The fact is that one variable with the result falls into the response object from the server, and the second is empty. In this situation: 'frequency' is array, 'lemms' is object.
try {
const pr = new Promise(async (resolve, reject) => {
try {
const { frequency, lemms } = await freqAnalysis(tokenized, lang)
// frequency is visible in this place
const { result, chunks } = await getTesaurusData(frequency)
// but not in this, i get lemms successfully
resolve({ frequency, lemms, result, chunks })
} catch (err) {
reject(err.message)
}
})
const { frequency, lemms, result, chunks} = await pr
const { tesauruses } = formTesaurusData(frequency, result, chunks)
let options = {
res,
result: {
frequency, // empty array
lemms, // good!
tesaurus: {
tesauruses,
totalWords: frequency.length || null,// null
}
},
message: 'success',
statusCode: 200
}
resp(options)javascript node.js
I have two asynchronous operations. In the interval between them, the result values are not empty and they are used in the next asynron operation. The fact is that one variable with the result falls into the response object from the server, and the second is empty. In this situation: 'frequency' is array, 'lemms' is object.
try {
const pr = new Promise(async (resolve, reject) => {
try {
const { frequency, lemms } = await freqAnalysis(tokenized, lang)
// frequency is visible in this place
const { result, chunks } = await getTesaurusData(frequency)
// but not in this, i get lemms successfully
resolve({ frequency, lemms, result, chunks })
} catch (err) {
reject(err.message)
}
})
const { frequency, lemms, result, chunks} = await pr
const { tesauruses } = formTesaurusData(frequency, result, chunks)
let options = {
res,
result: {
frequency, // empty array
lemms, // good!
tesaurus: {
tesauruses,
totalWords: frequency.length || null,// null
}
},
message: 'success',
statusCode: 200
}
resp(options)try {
const pr = new Promise(async (resolve, reject) => {
try {
const { frequency, lemms } = await freqAnalysis(tokenized, lang)
// frequency is visible in this place
const { result, chunks } = await getTesaurusData(frequency)
// but not in this, i get lemms successfully
resolve({ frequency, lemms, result, chunks })
} catch (err) {
reject(err.message)
}
})
const { frequency, lemms, result, chunks} = await pr
const { tesauruses } = formTesaurusData(frequency, result, chunks)
let options = {
res,
result: {
frequency, // empty array
lemms, // good!
tesaurus: {
tesauruses,
totalWords: frequency.length || null,// null
}
},
message: 'success',
statusCode: 200
}
resp(options)try {
const pr = new Promise(async (resolve, reject) => {
try {
const { frequency, lemms } = await freqAnalysis(tokenized, lang)
// frequency is visible in this place
const { result, chunks } = await getTesaurusData(frequency)
// but not in this, i get lemms successfully
resolve({ frequency, lemms, result, chunks })
} catch (err) {
reject(err.message)
}
})
const { frequency, lemms, result, chunks} = await pr
const { tesauruses } = formTesaurusData(frequency, result, chunks)
let options = {
res,
result: {
frequency, // empty array
lemms, // good!
tesaurus: {
tesauruses,
totalWords: frequency.length || null,// null
}
},
message: 'success',
statusCode: 200
}
resp(options)javascript node.js
javascript node.js
asked Dec 29 '18 at 10:24
LukashevLukashev
82
82
If you have two awaitable function, why put them in a promise? You can just.... await them, no?
– Holger Will
Dec 29 '18 at 10:31
Never ever pass anasync functionas the executor tonew Promise
– Bergi
Dec 29 '18 at 10:38
1
Iffrequencyis an array and you can see it contain elements after it's been returned fromfreqAnalysis(…)but it is empty after thegetTesaurusData(frequency)call, then the only conclusion is thatgetTesaurusDatais broken and removes the elements. Please post the code of that function.
– Bergi
Dec 29 '18 at 10:41
add a comment |
If you have two awaitable function, why put them in a promise? You can just.... await them, no?
– Holger Will
Dec 29 '18 at 10:31
Never ever pass anasync functionas the executor tonew Promise
– Bergi
Dec 29 '18 at 10:38
1
Iffrequencyis an array and you can see it contain elements after it's been returned fromfreqAnalysis(…)but it is empty after thegetTesaurusData(frequency)call, then the only conclusion is thatgetTesaurusDatais broken and removes the elements. Please post the code of that function.
– Bergi
Dec 29 '18 at 10:41
If you have two awaitable function, why put them in a promise? You can just.... await them, no?
– Holger Will
Dec 29 '18 at 10:31
If you have two awaitable function, why put them in a promise? You can just.... await them, no?
– Holger Will
Dec 29 '18 at 10:31
Never ever pass an
async function as the executor to new Promise– Bergi
Dec 29 '18 at 10:38
Never ever pass an
async function as the executor to new Promise– Bergi
Dec 29 '18 at 10:38
1
1
If
frequency is an array and you can see it contain elements after it's been returned from freqAnalysis(…) but it is empty after the getTesaurusData(frequency) call, then the only conclusion is that getTesaurusData is broken and removes the elements. Please post the code of that function.– Bergi
Dec 29 '18 at 10:41
If
frequency is an array and you can see it contain elements after it's been returned from freqAnalysis(…) but it is empty after the getTesaurusData(frequency) call, then the only conclusion is that getTesaurusData is broken and removes the elements. Please post the code of that function.– Bergi
Dec 29 '18 at 10:41
add a comment |
0
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',
autoActivateHeartbeat: false,
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
});
}
});
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53968687%2fhow-to-get-the-value-of-a-variable-after-all-successive-promises%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
0
active
oldest
votes
0
active
oldest
votes
active
oldest
votes
active
oldest
votes
Thanks for contributing an answer to Stack Overflow!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53968687%2fhow-to-get-the-value-of-a-variable-after-all-successive-promises%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
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
If you have two awaitable function, why put them in a promise? You can just.... await them, no?
– Holger Will
Dec 29 '18 at 10:31
Never ever pass an
async functionas the executor tonew Promise– Bergi
Dec 29 '18 at 10:38
1
If
frequencyis an array and you can see it contain elements after it's been returned fromfreqAnalysis(…)but it is empty after thegetTesaurusData(frequency)call, then the only conclusion is thatgetTesaurusDatais broken and removes the elements. Please post the code of that function.– Bergi
Dec 29 '18 at 10:41