ildar-k
1/28/2019 - 11:29 AM

Callback fn

// Sünkroonne funktsioon
// meil on pmst "andmebaas", milles kaks postitust
const posts = [
    {title: 'post one', body: 'This is post one'},
    {title: 'post two', body: 'This is post two'}
];

// fn postituse loomiseks, mis toimub 2 sek möödumisel
// function createPost(post){
//     setTimeout(function(){
//         posts.push(post);
//     }, 2000);
// };

//fn mis kuvab postitusi massiivist ning paigutab need listi ning kuvab lehel, 1 sek möödumisel
// function getPosts(){
//     setTimeout(function(){
//         let output = '';
//         posts.forEach(function(post){
//             output += `<li>${post.title}</li>`;
//         });
//         document.body.innerHTML = output;
//     }, 1000);
// };

// probleem selles, et me loome kolmanda postituse createPost aga fn getPosts ei kuva seda, kuna uus postitus pole veel jõudnud massiivi lisanduda
// createPost({title: 'Post Three', body: 'This is post 3'});
//
// getPosts();

// Asünkroonne fn
// Callback võimaldab kutsuda esile teist funktsiooni teise sees
function createPost(post, callback){
    setTimeout(function(){
        posts.push(post);
        callback();
    }, 2000);
};

function getPosts(){
    setTimeout(function(){
        let output = '';
        posts.forEach(function(post){
            output += `<li>${post.title}</li>`;
        });
        document.body.innerHTML = output;
    }, 1000);
};


createPost({title: 'Post Three', body: 'This is post 3'}, getPosts);