如何强制函数连续执行?

时间:2013-06-18 01:32:28

标签: javascript callback titanium appcelerator appcelerator-mobile

我有两个函数,我们称之为functionA和functionB

如果按以下方式调用函数

,则每个函数内部都有XHR调用下载文件
functionA();
functionB();

它们都会执行,但是functionB可以在functionA之前多次完成(由于使用functionA下载文件的大小。但这会破坏我的应用程序的功能,我宁愿让functionB仅在functionA之后触发已完成下载其数据。

现在我明显的答案是简单地将函数B的调用放在functionA的XHR调用中,但我不能这样做因为我的代码设置方式(commonJS sutff ...)

有没有办法基本上强制functionA完成自身并在functionB启动之前返回?

2 个答案:

答案 0 :(得分:5)

你可以使用回调,这是一个例子。它基本上将functionB传递给functionA,然后在functionB

结束时调用functionA
var functionA = function(cb) {
    //do some stuff
    cb();
};
var functionB = function() {
    //do some stuff
};
functionA(functionB);

另外,如果您使用google javascript回调,您会发现很多不同的文章。足够让你忙着阅读很长一段时间。

答案 1 :(得分:0)

你也可以查看像async.js这样的库。

这些库向您的代码中引入了promise的概念,并减少了所有异步回调的混乱。

https://github.com/caolan/async#readme

http://www.html5rocks.com/en/tutorials/async/deferred/