[Javascript]promise連鎖

promise連鎖

<apex:page>
    <html>

        <head>

        </head>

        <body>

            <script type="text/javascript">

                Promise.resolve('foo')
                // 1. Receive "foo", concatenate "bar" to it, and resolve that to the next then
                .then(function(string) {
                    return new Promise(function(resolve, reject) {
                    setTimeout(function() {
                        string += 'bar';
                        resolve(string);
                    }, 1);
                    });
                })
                // 2. receive "foobar", register a callback function to work on that string
                // and print it to the console, but not before returning the unworked on
                // string to the next then
                .then(function(string) {
                    setTimeout(function() {
                    string += 'baz';
                    console.log(string); // foobarbaz
                    }, 1)
                    return string;
                })
                // 3. print helpful messages about how the code in this section will be run
                // before the string is actually processed by the mocked asynchronous code in the
                // previous then block.
                .then(function(string) {
                    console.log("Last Then:  oops... didn't bother to instantiate and return " +
                                "a promise in the prior then so the sequence may be a bit " +
                                "surprising");

                    // Note that `string` will not have the 'baz' bit of it at this point. This
                    // is because we mocked that to happen asynchronously with a setTimeout function
                    console.log(string); // foobar
                });

                // logs, in order:
                // Last Then: oops... didn't bother to instantiate and return a promise in the prior then so the sequence may be a bit surprising
                // foobar
                // foobarbaz
                
            </script>

        </body>

    </html>
</apex:page>

結果

[Javascript]promiseのonFulfilled、onRejected

promiseのonFulfilled、onRejected

<apex:page>
    <html>

        <head>

        </head>

        <body>

            <script type="text/javascript">

                const resolvedProm = Promise.resolve(33);

                let thenProm = resolvedProm.then(value => {
                    console.log("this gets called after the end of the main stack. the value received and returned is: " + value);
                    return value;
                });
                // instantly logging the value of thenProm
                console.log(thenProm);

                // using setTimeout we can postpone the execution of a function to the moment the stack is empty
                setTimeout(() => {
                    console.log(thenProm);
                });
                
            </script>

        </body>

    </html>
</apex:page>

結果

[Javascript]promiseのthen,reason

promiseのthen,reason

<apex:page>
    <html>

        <head>

        </head>

        <body>

            <script type="text/javascript">

                const promise1 = new Promise((resolve, reject) => {
                resolve('Success!');
                });

                promise1
                .then((value) => {
                    console.log(value);
                    // expected output: "Success!"
                }
                ,reason => {
                    console.log("Error!");
                });
                
            </script>

        </body>

    </html>
</apex:page>

[Javascript]Javasriptでtomorrow取得

Javasriptでtomorrow取得

            const today = new Date();
            
            const tomorrow = new Date(today);
            tomorrow.setDate(tomorrow.getDate() + 1);

            const yyyyTomorrow = tomorrow.getFullYear();
            let mmTomorrow = tomorrow.getMonth() + 1;
            let ddTomorrow = tomorrow.getDate();
            const yyyymmddTomorrow = yyyyTomorrow + "," + mmTomorrow + "," + ddTomorrow;
            console.log('yyyymmddTomorrow:'+yyyymmddTomorrow);

            var endDate = new Date(yyyymmddTomorrow);
            console.log('endDate:'+endDate);