如何延迟一个函数直到另一个函数完成?

时间:2013-05-12 17:40:21

标签: function meteor delay

我很难找到这个问题的答案 - 我怀疑是因为我可能没有使用正确的术语。我正在使用Meteor。

这是我想要完成的事情:

Function A - returns the flickr userID based on userAPI and username
Function B - uses the userID generated by Function A

我遇到的问题是Function BFunction A有机会从Flickr检索信息之前完成。

延迟Function B并以某种方式将其与成功完成Function A联系起来的最佳方法是什么?

1 个答案:

答案 0 :(得分:2)

由于Meteor是一个建立在Node之上的异步框架,你必须要考虑一下你可能习惯的一点点。一种方法是:

var a = function(cb){
  var flickerId = getFlickerId();

  cb(flickerId);
};

var b = function(flickerId){
  //do something with the id
};

//call it
a(b);

我猜你正在使用一些框架来获取闪烁信息。该框架可能有一个函数调用,它接受上面的函数'a'之类的回调。

随着回调堆越来越深,这种代码会变得混乱。掌握了上述内容后,我建议您查看https://github.com/kriskowal/q以获得更清晰的解决方案。