Как использовать функцию обратного вызова в функциях скрипта Java - PullRequest
1 голос
/ 10 марта 2011

Я очень новичок в Java-скрипте и мне нужно использовать функцию обратного вызова в моей функции Java-скрипта. Я не знаю, как использовать функцию обратного вызова. Ниже мой код:

function SelectedFeature() {

// Here is my code

call_Method1();

call_Method2();

}

Проблема в вышеприведенной функции заключается в том, что call_method2 () начинает выполняться до того, как call_Method1 () завершает свое выполнение. Чтобы решить эту проблему, кто-то сказал мне использовать функцию обратного вызова. Теперь, как я могу использовать функцию обратного вызова в моей функции SelectedFeature (). Пожалуйста, объясните, используя пример кода.

Ответы [ 3 ]

3 голосов
/ 10 марта 2011

Вот простой пример:

function processData(data) {
    firstStep(data, secondStep);
}    

function firstStep(data, callback) {
    var result = getResult(data);
    if (result.success) {
        callback(result);
    }
}

function secondStep(data) {
    // ...
}
1 голос
/ 26 сентября 2017

Вот решение

 function SelectedFeature() {

    this.call_Method1 = function(data, callback) {
        var success = false; // define success flag with default false

        //your code
        //here write your logic and assign true of false to success based on your code execution
        success = true;

        if (success) {
            //pass data or add one more parametere to call_Method1 if different data
            //this.call_Method1 = function(data,data1,callback){
            //callbackdata1);
            callback(data);
        }
    }

    this.call_Method2 = function(data) {
        console.log(data);
    }

}

var feature = new SelectedFeature();
var data = "some data"
feature.call_Method1(data, feature.call_Method2);
1 голос
/ 18 декабря 2016

Если вы делаете ajax-вызов, чтобы остановить выполнение call_method2, в ajax-запросе мы можем сделать что-то вроде

$.ajax({
  url: "your url",
  type: "Get",
  success: call_Method2,
  failure: call_Method2
});

Теперь call_Method2 будет запускаться только после завершения call_Method1.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...