안녕하세요 내 컨트롤러에이 코드가 있습니다비동기/기다리고 있습니다 작동하지 않습니다
[HttpGet]
[Route("/Test")]
public async Task<IActionResult> Test() {
Console.WriteLine("foo");
await Task.Delay(2000);
Console.WriteLine("bar");
return Ok();
}
를 그리고 자바 스크립트로 테스트하려고 : 내가 기대
for(let i=0; i<2; i++){
axios.get('/Test').then(response => {
console.log(`task ${i} finish`)
})
}
서버에 출력해야한다 : 내가 가진 그러나 무엇
foo
foo
foo
bar
bar
bar
은 다음과 같습니다
foo
bar
foo
bar
foo
bar
내가 혼동스럽지 않고 await Task.Delay(2000)
은 제어 흐름을 프로세스로 되돌리고 다른 요청을 처리 할 수 있습니까? 액션 메서드는 많은 수의 요청을 동시에 처리 할 수 없다고 생각됩니다. 비동기/기다림에 대해 내가 오해하고 있습니까? 비 차단 긴 웹 서비스 호출을 시뮬레이션하려면 어떻게해야합니까?
I read this post but still can't figure out what is the solution
감사합니다. ASP.NET 코어 측면에서 몇 가지 중복 된 메서드를 만들고 다른 브라우저에서 여러 요청을 실행 한 후에는 동시에 반환하기 시작했습니다. ASP.NET 코어가 다른 탭의 요청을 동일한 소스로 처리하고 액션 메서드를 하나씩 실행한다는 것은 다소 이상합니다. 예상 된 결과를보기 위해 2 가지 다른 브라우저를 사용해야합니다. –