how to correctly deal with promisesPromise-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
How does it work when somebody invests in my business?
How long to clear the 'suck zone' of a turbofan after start is initiated?
Where does the Z80 processor start executing from?
What happens if you roll doubles 3 times then land on "Go to jail?"
How do I go from 300 unfinished/half written blog posts, to published posts?
Arithmetic mean geometric mean inequality unclear
I'm in charge of equipment buying but no one's ever happy with what I choose. How to fix this?
How to write papers efficiently when English isn't my first language?
Lay out the Carpet
Avoiding estate tax by giving multiple gifts
when is out of tune ok?
Why Were Madagascar and New Zealand Discovered So Late?
How did Arya survive the stabbing?
Failed to fetch jessie backports repository
Increase performance creating Mandelbrot set in python
How to be diplomatic in refusing to write code that breaches the privacy of our users
How easy is it to start Magic from scratch?
What does "I’d sit this one out, Cap," imply or mean in the context?
Sequence of Tenses: Translating the subjunctive
How can a function with a hole (removable discontinuity) equal a function with no hole?
Can the discrete variable be a negative number?
Would this custom Sorcerer variant that can only learn any verbal-component-only spell be unbalanced?
Is there a good way to store credentials outside of a password manager?
What is the difference between "behavior" and "behaviour"?
how to correctly deal with promises
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 complains saying "avoid nesting promises" and "Each then() should return a value or throw". I'm new to promises and I am not sure how to 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 complains saying "avoid nesting promises" and "Each then() should return a value or throw". I'm new to promises and I am not sure how to 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 complains saying "avoid nesting promises" and "Each then() should return a value or throw". I'm new to promises and I am not sure how to 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 complains saying "avoid nesting promises" and "Each then() should return a value or throw". I'm new to promises and I am not sure how to 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
edited 2 mins ago
Emanuele Paolini
asked 16 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%2fhow-to-correctly-deal-with-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 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%2fhow-to-correctly-deal-with-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