我有两个函数,functionA() 和 functionB(),每个函数都包含一个 $.getJSON。而且,根据 functionA() 返回的数据,functionB() 的行为会有所不同。我一直在使用:
functionA();
functionB();
但是,通过这种设置,我有时会从 functionB() 中得到一些意想不到的结果。我的想法是 functionB() 的 JSON 调用开始了,即使 functionA() 的 JSON 调用尚未完成。我对此的解决方案是将 functionB() 放在 $.getJSON 的“.done”中。虽然这有效,但我想知道是否有一种更优雅的方式来链接 functionA() 和 functionB() 以便 functionB() 在 functionA() 完全完成之前不会启动,同时我的 functionB() 调用在 functionA() 之外。
最佳答案
我建议使用 callback
语法(例如众所周知的 node.js
):
functionA(functionB);
虽然您的函数采用
callback
参数:functionA(callback){
// do stuff
// when ready, run:
return callback();
};
如果您的调用变得越来越复杂,您可能需要查看库 async