try/catch/async/await
7516 ワード
コードの例
const getLocation = async () => {
//수많은 로직중에 에러가 발생하면
//해당 에러를 포착하여 로직을 멈추고,에러를 해결하기 위한 catch 영역 로직이 실행
try {
//자바스크립트 함수의 실행순서를 고정하기 위해 쓰는 async,await
await Location.requestPermissionsAsync();
const locationData= await Location.getCurrentPositionAsync();
console.log(locationData)
} catch (error) {
//혹시나 위치를 못가져올 경우를 대비해서, 안내를 준비합니다
Alert.alert("위치를 찾을 수가 없습니다.", "앱을 껏다 켜볼까요?");
}
}
try/ catch
はAPIでよく使われるエラー防止コードですAPI呼び出しを正しく呼び出しても
サーバー側や携帯電話自体など、アプリケーション外でエラーが発生する可能性があります
これはこれらの状況を処理するコードです.
エラーが発生した場合の処理に使用される数.
try{}
の部分は、API要求のような動作コードを含む.catch{}
部エラー発生時に実行するコードの記述const getLocation = async () => {
//수많은 로직중에 에러가 발생하면
//해당 에러를 포착하여 로직을 멈추고,에러를 해결하기 위한 catch 영역 로직이 실행
try {
//자바스크립트 함수의 실행순서를 고정하기 위해 쓰는 async,await
await Location.requestPermissionsAsync();
const locationData= await Location.getCurrentPositionAsync();
console.log(locationData)
} catch (error) {
//혹시나 위치를 못가져올 경우를 대비해서, 안내를 준비합니다
Alert.alert("위치를 찾을 수가 없습니다.", "앱을 껏다 켜볼까요?");
}
}
try / catch
tryセクションにはAPI要求コードが含まれています.
catch部分にエラーが発生した場合、Alertの解放が見られます
catch(error)のerrorは固定されているようです
もう一度繰り返します!
tryのデフォルトはAPIを要求するコードです.
私だけかもしれない!エラーが発生した場合catchでエラーを処理
async / await
コードには
async / await
のキーワードが表示されますこれは、外部APIが携帯電話機器に関する情報/ファイルを呼び出してアクセスする際に使用するキーワードにすぎない.
これを書く理由は「関数の実行順序を固定するため」です.
外部ネットワークタスク(コールAPI)、携帯電話のファイルシステム、場所情報のインポートなど、タスクが非常に重い場合は、どこから着手すればいいか分からない場合があります.
これはjavascriptの特徴「
비동기
」のためです.これについて詳しく知るよりも、
1)外部API操作と
2)アプリではなく携帯電話そのものの機能(位置情報を尋ねる権限など)
使用時は
async / await
使用時、関数を囲む関数宣言子の前にasync
があります.使用する関数の前に
await
があります.次の例はすぐに理解できます
const func = async function(){
await func01()
await func02()
}
const func = async () => {
await func01()
await func02()
}
async function func(){
await func01()
await func02()
}
これを上の例に代入します.const getLocation = async function(){
await func01()
await func02()
}
const getLocation = async () => {
await func01()
await func02()
}
async function getLocation(){
await func01()
await func02()
}
asyncが関数宣言部分の前にあると理解すればよい.でもどうして下のように待てないの?
const locationData = await Location.getCurrentPositionAsync();
//위에 코드가 기존 형태인데 = 뒤에 await이 오는 게 뭔가 어색해보이지 않나?
await const locationData = Location.getCurrentPositionAsync();
//그래서 이렇게 위치를 변경해봤는데 에러가 뜨더라
//변수 선언할 때는 = 뒤에 await을 선언하면 되는 것 같음
Reference
この問題について(try/catch/async/await), 我々は、より多くの情報をここで見つけました https://velog.io/@d_day100/try-catch-async-awaitテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol