avoid promise nestingPromise-driven animationCaching/memoizing promise resultsUsing a Wrapper PromiseAngular Promise trying WrapperCalling a promise recursivelyPromise Chaining Forgot PasswordNode.js Sequelize PromiseTypeScript based Promise/A+ compliant, awaitable promise class for Node.jsPromise implementation in PythonExtending Mojo::Promise
Is this apparent Class Action settlement a spam message?
Why escape if the_content isnt?
How to be diplomatic in refusing to write code that breaches the privacy of our users
System.debug(JSON.Serialize(o)) Not longer shows full string
How to Reset Passwords on Multiple Websites Easily?
Failed to fetch jessie backports repository
Trouble understanding the speech of overseas colleagues
Integer addition + constant, is it a group?
Large drywall patch supports
Why does indent disappear in lists?
What is paid subscription needed for in Mortal Kombat 11?
Is the destination of a commercial flight important for the pilot?
How can I get through very long and very dry, but also very useful technical documents when learning a new tool?
Increase performance creating Mandelbrot set in python
How did Doctor Strange see the winning outcome in Avengers: Infinity War?
Tiptoe or tiphoof? Adjusting words to better fit fantasy races
Is HostGator storing my password in plaintext?
Is `x >> pure y` equivalent to `liftM (const y) x`
How to run a prison with the smallest amount of guards?
Different result between scanning in Epson's "color negative film" mode and scanning in positive -> invert curve in post?
Did Dumbledore lie to Harry about how long he had James Potter's invisibility cloak when he was examining it? If so, why?
Can the discrete variable be a negative number?
Hostile work environment after whistle-blowing on coworker and our boss. What do I do?
Escape a backup date in a file name
avoid promise nesting
Promise-driven animationCaching/memoizing promise resultsUsing a Wrapper PromiseAngular Promise trying WrapperCalling a promise recursivelyPromise Chaining Forgot PasswordNode.js Sequelize PromiseTypeScript based Promise/A+ compliant, awaitable promise class for Node.jsPromise implementation in PythonExtending Mojo::Promise
$begingroup$
The following function is accepting PUT connection to a server API, checks authorization to write and then performs write to a database.
The eslint
linting tool raised a warning saying "avoid nesting promises". I'm not sure why it is bad to nest promises (maybe I will miss some exceptions?). How can I improve my code?
app.put('/api/v0/note/:id', (req, res) =>
const id = req.params.id;
const uid = req.user ? req.user.uid : null;
return user_can_edit_note(uid, id).then(yes =>
if (yes)
return db.collection('notes').doc(id).update(
title: req.body.title,
text: req.body.text,
author_uid: req.user ? req.user.uid : null,
updated_on: admin.firestore.Timestamp.now()
).then(() =>
return res.json(
ok: "ok"
);
);
else
return res.status(403).json(
error: "Permission Denied",
note_id: id
);
).catch((err) =>
console.error(err);
return res.status(500).json(error: String(err));
);
);
promise
$endgroup$
add a comment |
$begingroup$
The following function is accepting PUT connection to a server API, checks authorization to write and then performs write to a database.
The eslint
linting tool raised a warning saying "avoid nesting promises". I'm not sure why it is bad to nest promises (maybe I will miss some exceptions?). How can I improve my code?
app.put('/api/v0/note/:id', (req, res) =>
const id = req.params.id;
const uid = req.user ? req.user.uid : null;
return user_can_edit_note(uid, id).then(yes =>
if (yes)
return db.collection('notes').doc(id).update(
title: req.body.title,
text: req.body.text,
author_uid: req.user ? req.user.uid : null,
updated_on: admin.firestore.Timestamp.now()
).then(() =>
return res.json(
ok: "ok"
);
);
else
return res.status(403).json(
error: "Permission Denied",
note_id: id
);
).catch((err) =>
console.error(err);
return res.status(500).json(error: String(err));
);
);
promise
$endgroup$
add a comment |
$begingroup$
The following function is accepting PUT connection to a server API, checks authorization to write and then performs write to a database.
The eslint
linting tool raised a warning saying "avoid nesting promises". I'm not sure why it is bad to nest promises (maybe I will miss some exceptions?). How can I improve my code?
app.put('/api/v0/note/:id', (req, res) =>
const id = req.params.id;
const uid = req.user ? req.user.uid : null;
return user_can_edit_note(uid, id).then(yes =>
if (yes)
return db.collection('notes').doc(id).update(
title: req.body.title,
text: req.body.text,
author_uid: req.user ? req.user.uid : null,
updated_on: admin.firestore.Timestamp.now()
).then(() =>
return res.json(
ok: "ok"
);
);
else
return res.status(403).json(
error: "Permission Denied",
note_id: id
);
).catch((err) =>
console.error(err);
return res.status(500).json(error: String(err));
);
);
promise
$endgroup$
The following function is accepting PUT connection to a server API, checks authorization to write and then performs write to a database.
The eslint
linting tool raised a warning saying "avoid nesting promises". I'm not sure why it is bad to nest promises (maybe I will miss some exceptions?). How can I improve my code?
app.put('/api/v0/note/:id', (req, res) =>
const id = req.params.id;
const uid = req.user ? req.user.uid : null;
return user_can_edit_note(uid, id).then(yes =>
if (yes)
return db.collection('notes').doc(id).update(
title: req.body.title,
text: req.body.text,
author_uid: req.user ? req.user.uid : null,
updated_on: admin.firestore.Timestamp.now()
).then(() =>
return res.json(
ok: "ok"
);
);
else
return res.status(403).json(
error: "Permission Denied",
note_id: id
);
).catch((err) =>
console.error(err);
return res.status(500).json(error: String(err));
);
);
promise
promise
asked 6 mins ago
Emanuele PaoliniEmanuele Paolini
1,9991712
1,9991712
add a comment |
add a comment |
0
active
oldest
votes
Your Answer
StackExchange.ifUsing("editor", function ()
return StackExchange.using("mathjaxEditing", function ()
StackExchange.MarkdownEditor.creationCallbacks.add(function (editor, postfix)
StackExchange.mathjaxEditing.prepareWmdForMathJax(editor, postfix, [["\$", "\$"]]);
);
);
, "mathjax-editing");
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: "196"
;
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: false,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: null,
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%2fcodereview.stackexchange.com%2fquestions%2f216388%2favoid-promise-nesting%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 Code Review Stack Exchange!
- 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.
Use MathJax to format equations. MathJax reference.
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%2fcodereview.stackexchange.com%2fquestions%2f216388%2favoid-promise-nesting%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