Get value from an async function in Outlook Web Addin
I'm working on an Outlook Web Addin that gets the email body. So in the Office API you could get the email body in two types: Simple Text and Html.
Our requirement is to get the HTML format so this is easy, however, even if the email body is empty the HTML format still returns a value which is the HTML elements but does not have contents in it. So my solution is to check first for the Simple Text version of the email body then if there is a content get the HTLM format version.
Please see the below codes:
var mailItem = Office.context.mailbox.item;
mailItem.body.getAsync(Office.CoercionType.Text, function (result) {
if (result.status === Office.AsyncResultStatus.Succeeded) {
var normalizeValue = null;
if (result.value) {
normalizeValue = result.value.trim();
}
if (normalizeValue !== '') {
mailItem.body.getAsync(Office.CoercionType.Html, function (result) {
if (result.status === Office.AsyncResultStatus.Succeeded) {
// the value will be initialized in input value
$('#body').val(result.value.trim());
}
});
}
}
});
I would like to get the value from the 'Text' type and pass this in a variable then check the variable then run the getAsync
for the html version separately instead of having the codes inside the method of body.getAsync
. Or anything the code could improve?
javascript jquery email outlook
bumped to the homepage by Community♦ yesterday
This question has answers that may be good or bad; the system has marked it active so that they can be reviewed.
add a comment |
I'm working on an Outlook Web Addin that gets the email body. So in the Office API you could get the email body in two types: Simple Text and Html.
Our requirement is to get the HTML format so this is easy, however, even if the email body is empty the HTML format still returns a value which is the HTML elements but does not have contents in it. So my solution is to check first for the Simple Text version of the email body then if there is a content get the HTLM format version.
Please see the below codes:
var mailItem = Office.context.mailbox.item;
mailItem.body.getAsync(Office.CoercionType.Text, function (result) {
if (result.status === Office.AsyncResultStatus.Succeeded) {
var normalizeValue = null;
if (result.value) {
normalizeValue = result.value.trim();
}
if (normalizeValue !== '') {
mailItem.body.getAsync(Office.CoercionType.Html, function (result) {
if (result.status === Office.AsyncResultStatus.Succeeded) {
// the value will be initialized in input value
$('#body').val(result.value.trim());
}
});
}
}
});
I would like to get the value from the 'Text' type and pass this in a variable then check the variable then run the getAsync
for the html version separately instead of having the codes inside the method of body.getAsync
. Or anything the code could improve?
javascript jquery email outlook
bumped to the homepage by Community♦ yesterday
This question has answers that may be good or bad; the system has marked it active so that they can be reviewed.
1
Is this really a code review question? It seems, from the text, that you don't have a working piece of code yet, so it could be more appropriate to have this on SO?
– Icepickle
Aug 14 '17 at 9:47
add a comment |
I'm working on an Outlook Web Addin that gets the email body. So in the Office API you could get the email body in two types: Simple Text and Html.
Our requirement is to get the HTML format so this is easy, however, even if the email body is empty the HTML format still returns a value which is the HTML elements but does not have contents in it. So my solution is to check first for the Simple Text version of the email body then if there is a content get the HTLM format version.
Please see the below codes:
var mailItem = Office.context.mailbox.item;
mailItem.body.getAsync(Office.CoercionType.Text, function (result) {
if (result.status === Office.AsyncResultStatus.Succeeded) {
var normalizeValue = null;
if (result.value) {
normalizeValue = result.value.trim();
}
if (normalizeValue !== '') {
mailItem.body.getAsync(Office.CoercionType.Html, function (result) {
if (result.status === Office.AsyncResultStatus.Succeeded) {
// the value will be initialized in input value
$('#body').val(result.value.trim());
}
});
}
}
});
I would like to get the value from the 'Text' type and pass this in a variable then check the variable then run the getAsync
for the html version separately instead of having the codes inside the method of body.getAsync
. Or anything the code could improve?
javascript jquery email outlook
I'm working on an Outlook Web Addin that gets the email body. So in the Office API you could get the email body in two types: Simple Text and Html.
Our requirement is to get the HTML format so this is easy, however, even if the email body is empty the HTML format still returns a value which is the HTML elements but does not have contents in it. So my solution is to check first for the Simple Text version of the email body then if there is a content get the HTLM format version.
Please see the below codes:
var mailItem = Office.context.mailbox.item;
mailItem.body.getAsync(Office.CoercionType.Text, function (result) {
if (result.status === Office.AsyncResultStatus.Succeeded) {
var normalizeValue = null;
if (result.value) {
normalizeValue = result.value.trim();
}
if (normalizeValue !== '') {
mailItem.body.getAsync(Office.CoercionType.Html, function (result) {
if (result.status === Office.AsyncResultStatus.Succeeded) {
// the value will be initialized in input value
$('#body').val(result.value.trim());
}
});
}
}
});
I would like to get the value from the 'Text' type and pass this in a variable then check the variable then run the getAsync
for the html version separately instead of having the codes inside the method of body.getAsync
. Or anything the code could improve?
javascript jquery email outlook
javascript jquery email outlook
asked Jun 15 '17 at 3:12
rpmansionrpmansion
10218
10218
bumped to the homepage by Community♦ yesterday
This question has answers that may be good or bad; the system has marked it active so that they can be reviewed.
bumped to the homepage by Community♦ yesterday
This question has answers that may be good or bad; the system has marked it active so that they can be reviewed.
1
Is this really a code review question? It seems, from the text, that you don't have a working piece of code yet, so it could be more appropriate to have this on SO?
– Icepickle
Aug 14 '17 at 9:47
add a comment |
1
Is this really a code review question? It seems, from the text, that you don't have a working piece of code yet, so it could be more appropriate to have this on SO?
– Icepickle
Aug 14 '17 at 9:47
1
1
Is this really a code review question? It seems, from the text, that you don't have a working piece of code yet, so it could be more appropriate to have this on SO?
– Icepickle
Aug 14 '17 at 9:47
Is this really a code review question? It seems, from the text, that you don't have a working piece of code yet, so it could be more appropriate to have this on SO?
– Icepickle
Aug 14 '17 at 9:47
add a comment |
1 Answer
1
active
oldest
votes
I would suggest you could use Promise.
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Using_promises
If you don't want additional library for Promise, you could use Deferred from jQuery also. https://api.jquery.com/deferred.promise/
add a comment |
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%2f165828%2fget-value-from-an-async-function-in-outlook-web-addin%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
1 Answer
1
active
oldest
votes
1 Answer
1
active
oldest
votes
active
oldest
votes
active
oldest
votes
I would suggest you could use Promise.
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Using_promises
If you don't want additional library for Promise, you could use Deferred from jQuery also. https://api.jquery.com/deferred.promise/
add a comment |
I would suggest you could use Promise.
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Using_promises
If you don't want additional library for Promise, you could use Deferred from jQuery also. https://api.jquery.com/deferred.promise/
add a comment |
I would suggest you could use Promise.
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Using_promises
If you don't want additional library for Promise, you could use Deferred from jQuery also. https://api.jquery.com/deferred.promise/
I would suggest you could use Promise.
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Using_promises
If you don't want additional library for Promise, you could use Deferred from jQuery also. https://api.jquery.com/deferred.promise/
answered Jun 15 '17 at 5:12
dongseok0dongseok0
101
101
add a comment |
add a comment |
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.
Some of your past answers have not been well-received, and you're in danger of being blocked from answering.
Please pay close attention to the following guidance:
- 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%2fcodereview.stackexchange.com%2fquestions%2f165828%2fget-value-from-an-async-function-in-outlook-web-addin%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
1
Is this really a code review question? It seems, from the text, that you don't have a working piece of code yet, so it could be more appropriate to have this on SO?
– Icepickle
Aug 14 '17 at 9:47