1. 라우팅 예외를 캡처하기 위한 다음 서버 구성이 올바른가요?
서버.js
2. 다음은 약속이 없는 경우(async/await) 예외가 정상적으로 발생하고 서버
xxxRouter.js
하지만 promise(async/await)의 경우 콘솔에 오류가 보고되고, 서버에서 캡처할 수 없어 q timeout
이 발생합니다. 으아악xxxRouter.js
으아악3. 실제 사용에서는 모든 경로에서 예외를 시도/캐치하고 처리해야 하는데 이는 매우 중복적으로 느껴집니다
으아악伊谢尔伦2017-05-16 13:37:30
async 함수는 Promise
개체를 반환합니다. 이 함수에서 발생한 예외는 catch()
또는 then( )
를 전달하여 처리해야 합니다. 두 번째 매개변수. Promise
对象,这个函数中抛出的异常需要通过 Promise
对象的 catch()
或 then()
的第 2 个参数来处理。
当然如想外层函数用了 await
,就不是用 catch()
或 then()
来处理了,而是像同步调用那样用 try ... catch ...
await
를 사용하는 경우 catch()
또는 then()
로 처리되지 않지만 동기화와 마찬가지로 사용 통화를 처리하려면 try ... catch ...
를 시도하세요. 내 생각에 Express 자체는 Promise/yield/async/await를 지원하지 않습니다(새 버전에서 관련 지원이 개발되었는지는 모르겠습니다). 요즘에는 Promise/yield/async/await를 더 잘 지원하는 Koa가 일반적으로 사용됩니다. 🎜