【问题标题】:How to force functions to execute consecutively?如何强制函数连续执行?
【发布时间】:2013-06-18 01:32:27
【问题描述】:

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

如果我按如下方式调用这些函数,则每个函数内部都有 XHR 调用以下载文件

functionA();
functionB();

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

现在对我来说最明显的答案是简单地将对 functionB 的调用放在 functionA 的 XHR 调用中,但由于我的代码设置方式,我不能这样做(commonJS sutff ...)

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

【问题讨论】:

    标签: javascript callback titanium appcelerator appcelerator-mobile


    【解决方案1】:

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

    var functionA = function(cb) {
        //do some stuff
        cb();
    };
    var functionB = function() {
        //do some stuff
    };
    functionA(functionB);
    

    此外,如果您使用 google javascript 回调,您会发现许多关于它们的不同文章。足以让您忙于阅读一段时间。

    【讨论】:

      【解决方案2】:

      您还可以查看 async.js 等库。

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

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

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

      【讨论】:

        猜你喜欢
        • 2021-06-11
        • 2020-05-12
        • 2016-02-07
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-03-29
        相关资源
        最近更新 更多