0
Quickbooks APIに接続し、従業員の情報をダウンロードしてローカルデータベースに保存しています。私はこれを達成するためにangularjs、webapiを使用しています。私は情報をデータベースに保存しているときに次のエラーが発生しています。私は、すべての関数が非同期で待機しているのを見る。私はこのエラーが表示されている理由を助けてください。別の操作が保留中に非同期モジュールが完了しました
エラー:非同期処理がまだ保留している間に完了「/」Application.An非同期モジュールまたはハンドラ内
サーバーエラーが発生しました。
var candidate = await CandidateLoginBL.AddCandidateByEmployeeAsync(new CandidateLoginBO() { FirstName = e.GivenName, MiddleName = e.MiddleName, LastName = e.FamilyName }); } });
完全な流れは以下の通りである:
JS:
QuickbookModule.factory('QuickbookService', ['$http', function ($http) { return { getQuickbooksSync: function() { return $http({ url: '/api/QuickbookService/syncQuickbooks', method: 'GET', params: { IdCompany: sessionStorage.CID } }); }
APIコントローラー:
問題は、コードの下に貼り付け部分で起こっています
[HttpGet]
[Route("syncQuickbooks")]
public async Task<IHttpActionResult> syncQuickbooks(int IdCompany)
{
var result = await QuickbooksBL.FullQuickbooksSync(IdCompany);
return Ok(result);
}
QuickbooksBL:
public static async Task<List<IncompleteEmp>> FullQuickbooksSync(int IdCompany)
{return await SyncronizeEmps(IdCompany); }
public static async Task<List<IncompleteEmp>> SyncronizeEmps(int companyId)
{
......
List<EmployeeBO> empList = new List<EmployeeBO>();
await AddToHumanEfits(companyId, inQBEmpsInfo); ....
}
return IncompleteEmps;
}
public static async Task AddToHumanEfits(int companyId, List<EmployeeQbOnlineBO> qbEmpsList)
{
....
qbEmpsList.ForEach(async e =>
{
// Add a record into Candidate Login.
var candidate = await CandidateLoginBL.AddCandidateByEmployeeAsync(new CandidateLoginBO()
{
FirstName = e.GivenName,
MiddleName = e.MiddleName,
LastName = e.FamilyName });
}
});
}
CandidateContactBL:
public static async Task<CandidateLoginBO> AddCandidateByEmployeeAsync(CandidateLoginBO model)
{
return await CandidateLoginDAL.AddCandidateByEmployeeAsync(model);
}
CandidateContactDAL:
public static async Task<CandidateLoginBO> AddCandidateByEmployeeAsync(CandidateLoginBO model)
{
CandidateLoginBO candidate = new CandidateLoginBO();
candidate = await GetByUserNameAsync(new CandidateLoginBO() { Email = model.Email }); candidate = await AddEmployeeAsync(model);
return candidate;
}
あなたは小さなコード例に問題を絞り込むことができませんか? –
//候補のログインにレコードを追加する際に問題が発生しています。セクション。フルフローを表示するコードを追加します。 –
他のコードはなぜ必要なのですか?問題がまだ残っている最小限のコードスニペットが表示されるまで元に戻します。 –