👀
未使用であることを示す変数 アンダーバー(_)【個人学習まとめ】
引数のアンダーバー(_)
JavaScriptにおいて、引数にアンダーバー(_
)が使われることがある。
これは、未使用であることを示す。(自分は初めて見たが、一般的な使い方らしい)
new Promise((_,reject) => {
setTimeout(() => {
reject("制限時間!");
},500);
});
Promise
は第一引数に成功状態を示すresolve
、第二引数に失敗状態を示すreject
が必要。
上記の例では、タイムアウト後にPromise
を拒否したいだけなので、成功状態を示すresolve
は必要ないためアンダーバー(_
)を使って未使用であることを明示的にしている。
省略せずに書くなら次のようになる。
new Promise((resolve,reject) => {
setTimeout(() => {
reject("制限時間!");
},500);
});
余談
TypeScriptでサンプルを作成。
function createTimeoutPromise(t: number): Promise<void>{
return new Promise<void>((_, reject) =>{
setTimeout(() =>{
reject("制限時間");
},t);
});
}
さらに余談
動くサンプルつくった。
ただし、resolve
の動きも見たかったのでアンダーバー(_
)は使用していません。
function createPromise(t: number): Promise<string> {
return new Promise<string>((resolve, reject) => {
const isSucceed = Math.random() > 0.5; //0.5より大きければtrue
setTimeout(() => {
if (isSucceed) {
resolve("成功!");
} else {
reject("失敗...");
}
}, t);
});
}
async function main() {
try {
const result = await createPromise(100);
console.log(result);
} catch (error) {
console.log(error);
}
}
main();
Discussion