如何在Javascript函数中使用回调函数

时间:2011-03-10 18:01:41

标签: javascript callback

我是Java脚本的新手,需要在我的java脚本函数中使用回调函数。我不知道如何使用回调函数。以下是我的代码:

function SelectedFeature() {

// Here is my code

call_Method1();

call_Method2();

}

上述函数中的问题是,call_method2()在call_Method1()结束执行之前开始执行。为了解决这个问题,有人告诉我使用回调函数。现在我如何在我的SelectedFeature()函数中使用回调函数。请使用代码示例解释。

4 个答案:

答案 0 :(得分:3)

这是一个简单的例子:

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

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

function secondStep(data) {
    // ...
}

答案 1 :(得分:1)

如果你正在进行ajax调用,要停止执行call_method2,在ajax请求中我们可以做类似的事情,

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

现在,call_Method2将仅在call_Method1完成时运行。

答案 2 :(得分:1)

这是解决方案

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

答案 3 :(得分:0)

您可以遵循此回调结构

function SelectedFeature(call_Method1, call_Method2) {

    // Here is my code

    call_Method1();

    call_Method2();

}

SelectedFeature(function () {
    console.log('call_Method1')
}, function () {
    console.log('call_Method2')
})