9月5日非同期概念総括(block、callback、promise、async)
blocking vs non-blocking
ブロック(同期)
ノンブロッキング(非同期)
非同期Calback
callback関数を使用して、関数内の他の関数を制御します.
他の関数を制御することで非同期で使用できます
非同期性はmake by designによって実現され、古典的な方法を用いて実現される
上記の方法を用いる場合、callback関数はbar同期関数
短所
毒が弱い
Promise
Promiseより効率的な非同期処理のために設計されたES 6構文
非同期の利点を十分に活用するには、非同期で作成する必要があります.
問題Promise実行関数が持つ2つのパラメータresolveとexecuteはそれぞれ何を意味しますか?
resolve
およびreject
をパラメータとして受け入れますthen
及びcatch
の方法new Promise 객체는 promise를 리턴한다
Promise.prototype.then , Promise.prototype.catch는 Promise를 리턴한다
その後(resolve)またはcatch(拒否)します.
そして()メソッド
Promiseを返し、パラメータとして2つのコールバック関数を受け入れます.
一つはPromise実行時のコールバック関数、もう一つは拒否時のコールバック関数
then(resolve의 인자) => {
//성공 후 할일
}
catch()メソッドPromise 인스턴스
にはどのような方法がありますか?それぞれどんな用途がありますか?then()
,解析パラメータを受け取り,Promisecatch()
,拒否されたパラメータを受け入れ、Promise質問Promiseprototype.では、メソッドは何を返しますか?
質問Promiseprototype.catchメソッドは何を返しますか?
どちらの方法もPromiseに戻ります
Promiseの3つの状態はそれぞれ何なのか、何の意味があるのかを質問します.
대기(pending)
:初期未履行または拒否未解決または却下の場合
コードはまだ実行中
이행(fulfilled)
:演算成功完了거부(rejected)
:演算失敗const 프로미스인스턴스 = new Promise(프로미스실행함수)
.then => 프로미스를 리턴한다
.then의 실행함수의 인자로 fulfilled된 결과가 전달 된다
즉, resolve의 첫번째 인자
.catch => 프로미스를 리턴한다
.catch의 실행함수의 인자로 rejected된 결과가 전달된다
스크립트 실행이 중간에 멈추는 것을 막는다
이렇게 에러를 catch하는 것을 에러핸들링이라고 한다
Promise instance=>Promiseを返しますresolve,reject=>Promise戻り
.then, .catch=>Promise戻り
これでPromiseに戻ってPromiseの状態を確認します
エラーが発生した場合、Promiseステータスは拒否されます.
catch로 받으면 Promise상태가 fulfilled로 받아올수 있다
(エラーハンドル)Promise All
複数のPromiseを処理する必要がある場合は複数回使用できますが、Promise allを使用して処理できます.
const promiseArr = [new Promise(프로미스실행함수), new Promise(프로미스실행함수2)]
// promiseArr = [프로미스인스턴스, 프로미스인스턴스]
Promise.all(promiseArr) // Promise all 사용
promiseArr는 fulfilled상태이며, 프로미스인스턴스가 (then으로 사용한거 처럼) 해결이 된 상태로 배열에 담긴다
承諾Arrは完了状態であり、Promisインスタンス(後述する)によって解決状態で配列される.すなわち,配列セットで解決できる.
Promise.all(promiseArr).then(([promiseArr의 첫번째 요소 프로미스인스턴스를 then 한 값, promiseArr의 두번째 요소 프로미스인스턴스를 then 한 값]) => {})
async, await
asyncキーワードを使用する関数の内部
const asyncFunc = async => {
const await이 없는 경우 = new Promise(프로미스실행함수);
const await이 있는 경우 = await new Promise(프로미스실행함수);
}
awaitキーワードの後に現れる関数実行は、どのタイプを返す場合にのみ意味がありますか?Promiseのresolveのパラメータ、すなわち結果値、Promiseのthenで得られた値
Reference
この問題について(9月5日非同期概念総括(block、callback、promise、async)), 我々は、より多くの情報をここで見つけました https://velog.io/@southbig89/9월-5일-일-비동기-재정리テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol