Get value from an async function in Outlook Web Addin












0














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?










share|improve this question














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
















0














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?










share|improve this question














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














0












0








0







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?










share|improve this question













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






share|improve this question













share|improve this question











share|improve this question




share|improve this question










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














  • 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










1 Answer
1






active

oldest

votes


















0














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/






share|improve this answer





















    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
    });


    }
    });














    draft saved

    draft discarded


















    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









    0














    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/






    share|improve this answer


























      0














      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/






      share|improve this answer
























        0












        0








        0






        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/






        share|improve this answer












        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/







        share|improve this answer












        share|improve this answer



        share|improve this answer










        answered Jun 15 '17 at 5:12









        dongseok0dongseok0

        101




        101






























            draft saved

            draft discarded




















































            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.




            draft saved


            draft discarded














            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





















































            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

            How to reconfigure Docker Trusted Registry 2.x.x to use CEPH FS mount instead of NFS and other traditional...

            is 'sed' thread safe

            How to make a Squid Proxy server?