2

私は2つの関数を持っています。それらをfunctionAとfunctionBと呼びましょう

これらの各関数の内部には、ファイルをダウンロードするための XHR 呼び出しがあります。次のように関数を呼び出すと、

functionA();
functionB();

どちらも実行されますが、関数 B は関数 A の前に何度も終了する可能性があります (関数 A でダウンロードされるファイルのサイズが大きいため)。そのデータをダウンロードしています。

最初は、functionA の XHR 呼び出し内に functionB への呼び出しを配置するだけです。

基本的に functionA を強制的に終了させ、functionB が開始する前に戻る方法はありますか?

4

2 に答える 2

5

コールバックを使用できます。ここに例を示します。それは基本的にに渡さfunctionBれ、最後にfunctionA呼び出されますfunctionBfunctionA

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

また、JavaScript コールバックを Google で検索すると、さまざまな記事が見つかります。かなり長い間読むのに忙しくするのに十分です。

于 2013-06-18T01:37:00.047 に答える
0

async.js などのライブラリを参照することもできます。

これらのライブラリは、Promise の概念をコードに導入し、すべての非同期コールバックの混乱を軽減します。

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

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

于 2013-06-18T03:53:36.450 に答える