当前位置:  开发笔记 > 编程语言 > 正文

Javascript:回调不是一个功能

如何解决《Javascript:回调不是一个功能》经验,为你挑选了1个好方法。

roll()函数运行良好,但是当我试图获得回调时它会抛出错误:回调不是函数

var speed = 300;
function roll(callback) {
  if (typeof callback === "function") {
    console.log('callback is function!'); //yes
  }
  if (speed < 1000) {
    speed += 50;
    setTimeout(roll, 1000); //increase speed
  } else if (speed >= 1000) {
    console.log('finished');
    return callback(true); //problem here?
  }
}
roll(function(callback) {
  console.log(callback); //callback is not a function
});

小智.. 5

问题的根本原因在于:setTimeout(roll, 1000).

roll被调用 没有 callback功能setTimeout.

var speed = 300;

function roll(callback) {
  console.log('callback', callback);
  if (speed < 1000) {
    speed += 50;
    setTimeout(function() { 
      roll(callback); //pass the callback
    }, 1000); //increase speed
  } else {
    console.log('finished');
    callback(true); //removed un-wanted `return`
  }
}
roll(function(result) { //renamed parameter
  console.log(result);
});



1> 小智..:

问题的根本原因在于:setTimeout(roll, 1000).

roll被调用 没有 callback功能setTimeout.

var speed = 300;

function roll(callback) {
  console.log('callback', callback);
  if (speed < 1000) {
    speed += 50;
    setTimeout(function() { 
      roll(callback); //pass the callback
    }, 1000); //increase speed
  } else {
    console.log('finished');
    callback(true); //removed un-wanted `return`
  }
}
roll(function(result) { //renamed parameter
  console.log(result);
});
推荐阅读
凹凸曼00威威_694
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有