确定JavaScript Dropbox数据存储API何时完成插入

时间:2015-01-07 05:32:41

标签: javascript dropbox-api

我正在使用JavaScript API将大量记录(2000-3000)导入Dropbox数据存储区。我试图阻止UI直到导入完成,因为如果用户导航离开页面,导入将终止部分过程。

这是我的代码,其中包含对所发生事件的评论:

//This shows a "loading" spinner
showLoader('Standby','Importing logbook...');

//Fire import function
writeToDropbox('aircraft', data.aircraft);

function writeToDropbox(tableName, dataArray){

  //Write up to 100 items per delta
  for(var i = 0; i < dataArray.length && i < 100; i++) {
    //Write to Dropbox
    datastore.getTable(tableName).insert(dataArray[i]);
  }

  if(i < dataArray.length) { 
    //More to write
    window.setTimeout(function(){
      //After a tick, continue from where we left off              
      writeToDropbox(tableName, dataArray.slice(i));      
    }, 1);
  }

  //Check progress
  if(dataArray.length == 0){
    //Writing complete... show the confirmation modal
    hideLoader();
    $('#modal-done').show(); //(!) This happens before all the records are inserted
  }  
}

我遇到的问题是JavaScript全部执行,我的应用程序显示确认模式,但在后台数据存储区API仍在插入记录。

如何可靠地确定API何时插入记录?

1 个答案:

答案 0 :(得分:1)