2017-09-19 2 views
0

NodeJ에 대한 질문이 있습니다. 6.6 이후로 처리되지 않은 약속을 가져올 수 없다고 말합니다.노드 - split() 오류를 잡는 방법?

오류가 발생하지 않도록하려면 빨간색으로 잡으십시오.하지만 ... 알았 으면 어떻게해야합니까?

args[1] = args[1].split('!')[1].split('>')[0] 

.catch (err => console.log (err))를 추가하려고했지만 아무 것도 변경되지 않았습니다.

미리 감사드립니다. :)

+0

게시 한 코드가 비동기 적이 아니며 약속을 반환하지 않습니다. – lilezek

+0

코드 스 니펫을 업데이트 하시겠습니까? – Rowland

+0

코드에 중첩 된 '약속'이 포함되어 있습니까? – guest271314

답변

0

.catch (err => console.log (err))는 약속의 오류를 잡는 데 사용됩니다. 대신 표준 양식을 사용하십시오.

try{ 
    args[1] = args[1].split('!')[1].split('>')[0] 
} 
catch(err){ 
    console.log(err) 
} 
+0

감사합니다. Valera, 잘 작동합니다. – Izio

0

다소 많지 않습니다. 그것은 바로 아래 캡처 할 수있는 단순한 자바 스크립트 문의 : 대신 잡기의 전체

try{ 
    args[1] = args[1].split('!')[1].split('>')[0] 
}catch(e){ 
console.log(e); 
// Most possible error would be TypeError: Cannot read property 'split' of undefined 
at <anonymous>:1:23 
} 
+0

잘 작동합니다. 감사합니다. – Izio

0

에 시도 캐치를 사용해보십시오, 첫 번째 분할에는 두 번째 인덱스를 생성하지 않을 때 당신이 문자열을 대체하여 오류를 방지 할 수 있습니다 .

args[1] = (args[1].split('!')[1] || "").split('>')[0]; 

args[1] 확실히 존재하는 것으로 가정합니다. 그것이 확실하지 않다면 비슷한 대체를 할 수 있습니다.

args[1] = ((args[1] || "").split('!')[1] || "").split('>')[0]; 

그리고 마지막으로, 당신은 그것의 일부가 유용한 무언가를 생산하지 못한 경우에 디폴트 값을 제공 할 수 있습니다.

args[1] = ((args[1] || "").split('!')[1] || "").split('>')[0] || "DEFAULT"; 
+0

이것은 똑똑하다. spanky를 공유해 주셔서 감사합니다. – Izio

+0

당신은 천만에요. – spanky