我在哪里可以在覆盖函数

时间:2015-07-09 07:57:38

标签: javascript angularjs callback

我想通过回调声明一个javascript函数getMyAttribute(),以便我可以像下面这样使用它

var result = getMyAttribute(1, 2, function(){
    console.log(result);
});

我有一个问题,我可以在哪里调用getMyAttribute()中的回调函数?

function getMyAttribute(num1, num2, callback){
    // where should I call the callback function in this block ?
    var result = num1+num2;// this is just an example of function processing to get result. In practice, it may be more complex, or in an async way
    return result;
}

我受到Angular代码的启发,在角度方面,我可以像这样做一个代码

var pager = Product.get({p:pageIndex},function(){
        $scope.showProducts(pager);
});

如何角度实现这个?

1 个答案:

答案 0 :(得分:0)

当我们不知道某个进程会像ajax这样的异步方法发生时,我们通常会使用回调,因此在这种情况下我们无法返回任何值(在这种情况下,我们将调用结果准备好后回调)。或者在(由@slebetman指出)需要处理集合的情况下,我们需要对每个项目执行某些操作,例如each()回调

注意:您当前的方法并不真正需要基于回调的实现,因为其中没有异步操作。

因此使用回调的方法的实现将是



getMyAttribute(1, 2, function(result) {
  snippet.log('got the result: ' + result);
});

function getMyAttribute(num1, num2, callback) {
  //since a callback is expected, dont return the value, call the callback with the value
  var result = num1 + num2;
  callback(result);
}

<!-- Provides the `snippet` object, see http://meta.stackexchange.com/a/242144/134069 -->
<!-- To show result in the dom instead of console, only to be used in the snippet not in production -->
<script src="http://tjcrowder.github.io/simple-snippets-console/snippet.js"></script>
&#13;
&#13;
&#13;