как правильно установить эту переменную после вызова некоторых функций?

У меня есть следующий сценарий.

Я пытаюсь установить переменную showMsg после вызова функции saySomething (). Он должен быть установлен на true или false в зависимости от того, что я делаю с функцией saySomething.

С этим я становлюсь неопределенным. Как установить showMsg после вызова функции saySomething?

$(document).ready(function(){

   var showMsg;

   (function() {
       saySomething("something something darkside, something something complete!",
                 function() { showMsg = true;  console.log('aww yis') },
                 function() { showMsg = false; console.log('ooo noo') } );
})();


    console.log(' showMsg = ' + showMsg);

    function saySomething(strText, functionOne,functionTwo){
      console.log("From saySomething : " + strText);
    }  

});

2 ответа

  1. Вы должны на самом деле выполнить одну из функций, чтобы она имела эффект. Я понятия не имею, что ваша логика может быть, но что-то вроде следующего:

    $(document).ready(function(){
    
       var showMsg;
    
       (function() {
           saySomething("something something darkside, something something complete!",
                     function() { showMsg = true;  console.log('aww yis') },
                     function() { showMsg = false; console.log('ooo noo') } );
    })();
    
    
        console.log(' showMsg = ' + showMsg);
    
        function saySomething(strText, functionOne,functionTwo){
          alert(strText);
          if (strText === "something something darkside, something something complete!") {
            functionOne();
          } else {
            functionTwo();
          }
        }  
    
    });
    
  2. Я думаю, что вы хотите что-то вроде этого

     $(document).ready(function(){
            var showMsg;
               function addContact(strtext, refreshCallback,refreshCallbacksecond ) {
            alert(strtext);
                refreshCallback();
            refreshCallbacksecond();
                // You can also pass arguments if you need to
                // refreshCallback(id);
            }
    
            function functionOne() {
                alert('Hello World');
            showMsg = true;  console.log('aww yis');
            }
    
            function functionTwo() {
                alert('Hello World 2');
            showMsg = false; console.log('ooo noo')
            }
    
            function testshow() {
            addContact("something something darkside, something something complete!", functionOne, functionTwo);
            console.log(showMsg);
            }
    
            testshow();
    
    
            });
    

    и вот пример для вас на jsfiddle. [https://jsfiddle.net/dau7awtk/%5D

    Надеюсь, это поможет вам.