비동기/대기 문제
1986 단어 javascript
비동기는 약속이 아닙니다(아직?)
우리는 코드베이스에서 Promise에서 async/await로 이동해 왔으며 대부분 매우 순조롭게 진행되었습니다. 코드 줄 적기, 표현력 향상 등
그러나 전달된 변수가 약속인지 여부를 확인하는 한 줄의 코드가 있었습니다.
if (promise instanceof Promise) ...
이것은 비동기로 실패합니다 ... 때때로.
노드 8에서는 false를 제공합니다.
(async () => {})() instanceof Promise
// -> false
크롬에서는 true를 제공합니다.
(async () => {})() instanceof Promise
// -> true
내 가정은
true
가 올바른 응답이고 이것은 노드에서 수정해야 할 버그(아마도 이미)라는 것입니다.그 동안 우리는
if (promise instanceof Promise || promise.constructor.name === 'Promise') ...
그리고 난 여전히
Reference
이 문제에 관하여(비동기/대기 문제), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/tyrw/an-async-await-gotcha-1fm텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)