0

Web サイトで有効な WCF-Ajax を使用しています。

ファイルを非同期で保存する必要がありますが、最終的には、すべての非同期操作がいつ終了したかを知る必要があります。

function test()
{
   for (var i = 0; i < arr.length; i++) {
         saveFileService.SaveFile(arr[i], onSaveFileComplete);
   }

   //TODO: CHECK THAT **ALL** FILE SAVES ARE DONE  
}

function onSaveFileComplete(result)
{
  // ONE FILE SAVE ENDED SUCCESSFULLY
}

「TODO」部分の書き方は?

4

3 に答える 3

2

ファイルを保存するときにグローバルカウンターを使用するだけです...

var fiesCurrentlySaving = 0;

function test()
{
   for (var i = 0; i < arr.length; i++) {
         // Increase counter for the number of files saving
         filesCurrentlySaving++;

         // Save the file
         saveFileService.SaveFile(arr[i], onSaveFileComplete);
   }
}

function onSaveFileComplete(result)
{
    // Reduce the file counter
    filesCurrentlySaving--;

    if (filesCurrentlySaving <= 0)
    {
        // Do whatever you need to do now!
    }
}
于 2013-06-04T08:55:21.057 に答える