Node.js回调和递归

时间:2015-09-30 21:53:37

标签: node.js recursion callback

我不明白如何在node.js中递归调用函数,例如:

var releaseStock = function (callback) {

  getItems(function (err, items) {
    if (err) {
      return callback(err);
    } else {
      if (items) {
        return callback(items);
      } else {
        setTimeout(function() {
          releaseStock(callback);
        }, 5000); 
      }
    }
  });
};

我怎样才能让它发挥作用?

1 个答案:

答案 0 :(得分:2)

我不完全确定你想做什么,但我怀疑它是这样的:

var releaseStock = function(callback) {

  // get items from somewhere:
  var items = getItems();

  if (!items) {
    // if there are no items, try again (recurse!):
    return releaseStock(callback);
  }

  // if there are items, give them to the callback function:
  return callback(items);
};