我如何才能等到两个函数的结尾,以及仅在调用回调以使它们继续执行脚本之后才等待。

我注意了jQuery deferred.then(),但不了解如何在我的情况下使用它

GoogleDriveModule.checkAuth(function(authResult) {
  if (authResult) {
    return parts_count += 1;
  }
});

DropboxModule.isAuthenticated(function(authResult) {
  if (authResult) {
     return parts_count += 1;
  }
});

最佳答案

创建两个延迟的对象,并在回调中解决它们。然后,您可以使用$.when等待两个递延:

var googleDone = $.Deferred(),
    dropboxDone = $.Deferred();

GoogleDriveModule.checkAuth(function(authResult) {
  googleDone.resolve();
  if (authResult) {
    return parts_count += 1;
  }
});

DropboxModule.isAuthenticated(function(authResult) {
  dropboxDone.resolve();
  if (authResult) {
     return parts_count += 1;
  }
});

$.when(googleDone, dropboxDone).then(function() {
    alert("Both authentication checks completed.");
});

10-08 04:32