使用嵌套的回调

时间:2019-01-27 16:49:50

标签: javascript callback

目前,我试图弄清楚嵌套回调在Javascript中是如何工作的。但是在我的示例中,控制台不打印任何内容。这个例子很基本-应该打印字母:abc。

代码

mac_sonuclari_url = "http://mservice.fanatik.com.tr/LeagueStage?TournamentID={}&includeFixture=1"
with urllib.request.urlopen(mac_sonuclari_url.format(1)) as url:
     try:
         data = json.loads(url.read().decode())    
     except Exception as err:
         logging.error("{}: Error Getting URL: {} with Error: {}".format(fna, mac_sonuclari_url.format(1), err))

1 个答案:

答案 0 :(得分:3)

handleWithCallback中,您通过传递参数来调用callback函数,但请注意实际的getX回调函数如何不使用该参数。他们应该以回调函数作为参数并调用它。

注意:我减少了超时延迟,因此您不必等待那么长时间即可看到结果:)

function getA(cb) {
  return setTimeout(() => cb('a'), 100);
}

function getB(cb) {
  return setTimeout(() => cb('b'), 200);
}

function getC(cb) {
  return setTimeout(() => cb('c'), 300);
}

function handleWithCallback(callback1, callback2, callback3) {
  callback1(a =>
    callback2(b =>
      callback3(c => console.log(a + b + c))
    )
  );
}

handleWithCallback(getA, getB, getC);