記事の最後に他の記事へのリンクがあります
Es8
1、非同期/待機
非同期関数
async 関数は、async キーワードを使用して宣言された関数です。async 関数は AsyncFunction コンストラクターのインスタンスであり、その中で await キーワードを使用できます。async および await キーワードを使用すると、意図的に Promise を連鎖させることなく、Promise ベースの非同期動作をより簡潔な方法で作成できます。
文法:
async function name([param[, param[, ... param]]]) {
//statements 主体
}
待つ
await 演算子は、Promise オブジェクトを待つために使用されます。非同期関数でのみ使用できます。
await 式は、現在の非同期関数の実行を一時停止し、Promise 処理が完了するのを待ちます。Promise が正常に処理される (満たされる) 場合、そのコールバックのsolve 関数パラメーターが await 式の値として使用され、async 関数は実行され続けます。Promise が例外を処理する (拒否される) 場合、await 式は Promise の例外理由をスローします。また、await 演算子の後の式の値が Promise でない場合は、値そのものが返されます。
使用:
function resolveAfter2Seconds() {
return new Promise(resolve => {
setTimeout(() => {
resolve('resolved');
}, 2000);
});
}
async function asyncCall() {
console.log('calling');
const result = await resolveAfter2Seconds();
console.log(result);
// expected output: "resolved"
}
asyncCall();
2. オブジェクトメソッドの拡張
Object.values()
Object.values() メソッドは、for...in ループを使用する場合と同じ順序で、指定されたオブジェクト自体の列挙可能なすべてのプロパティ値の配列を返します (違いは、for-in であることです)ループは、) 内のプロトタイプ チェーン プロパティを列挙します。
var obj = {
foo: 'bar', baz: 42 };
console.log(Object.values(obj)); // ['bar', 42]
Object.entries()
Object.entries() メソッドは、指定されたオブジェクト独自の列挙可能なプロパティのキーと値のペアの配列を返します。
const object1 = {
a: 'somestring',
b: 42
};
for (const [key, value] of Object.entries(object1)) {
console.log(`${
key}: ${
value}`);
}
// output:
// "a: somestring"
// "b: 42"
Object.getOwnPropertyDescriptor()
Object.getOwnPropertyDescriptor() メソッドは、指定されたオブジェクトの独自のプロパティに対応するプロパティ記述子を返します。(独自のプロパティとは、オブジェクトに直接割り当てられているプロパティを指し、プロトタイプ チェーンから検索する必要はありません。)
指定されたプロパティがオブジェクトに存在する場合は、そのプロパティ記述子オブジェクト (プロパティ記述子) が返され、それ以外の場合は、未定義が返されます。戻ってきた。
const object1 = {
property1: 42
};
const descriptor1 = Object.getOwnPropertyDescriptor(object1, 'property1');
console.log(descriptor1.configurable);
// expected output: true
console.log(descriptor1.value);
// expected output: 42
前の記事: 最も完全な Es6 ~ Es11 (Es7 の記事)
次の記事: 最も完全な Es6 ~ Es11 (Es9 の記事)