回调代表什么?

时间:2014-01-05 21:06:47

标签: javascript jquery

我是JS的新手。我正在研究以下代码,我想知道回调代表什么,它是什么?

function(fileID, callback) {
  var request = $.ajax({
    url: url + "wishlist/" + fileID,
    type: "GET"
  });

  request.done(callback);

  request.fail(function (jqXHR, textStatus) {

  }); 
}

2 个答案:

答案 0 :(得分:4)

回调是响应从服务器返回时调用的函数。

答案 1 :(得分:2)

它不代表任何东西,它不是缩写。

一般而言,回调是一段代码,传递给稍后要执行的函数。

在JavaScript中,“代码片段”几乎总是一个函数。

最简单的例子是setTimeout,其中第一个参数是代码(应该是一个函数,但可能是要评估的字符串),第二个参数是从现在开始的毫秒数“以后的时间“发生在。

function aFunction () { alert("Ta da"); }
setTimeout( aFunction /* The callback function */,
            500 /* 500ms from now */ 
          );

在您提出问题的示例中,“稍后时间”是“当收到对HTTP请求的响应时”。另一个例子可能是“当用户点击链接时”:

document.querySelector('a').addEventListener('click', aFunction);

另请参阅:the Wikipedia entry on callbacks