了解回调函数的用途

pad*_*lds 4 javascript callback

我意识到这更像是一个普遍问题,但我已经阅读了这里的类似答案,但我找不到更多概述。我是回调的新手,我试图了解何时应该使用它们。

MDN 网络文档有这个例子;

function greeting(name) {
  alert('Hello ' + name);
}

function processUserInput(callback) {
  var name = prompt('Please enter your name.');
  callback(name);
}

processUserInput(greeting);
Run Code Online (Sandbox Code Playgroud)

然而,我很难看出这比下面的更有利,我没有将问候函数作为参数传递?

function greeting(name) {
  alert('Hello ' + name);
}

function processUserInput() {
  var name = prompt('Please enter your name.');
  greeting(name);
}

processUserInput();
Run Code Online (Sandbox Code Playgroud)

kak*_*ala 6

由于 Javascript 是异步的,有时很难处理来自非阻塞函数的响应,例如。如果您正在进行ajax调用,那么它将异步执行,并且稍后将返回结果,那时主执行流程将传递ajax代码并开始执行以下语句,在这种情况下,很难捕获响应进一步处理。

为了处理这些情况,需要使用回调,将函数作为参数传递给 ajax 函数,返回响应后,通过将响应数据作为参数传递来调用回调以进行进一步处理。

更多信息请点击这里http://callbackhell.com/