ひどうきプログラミング
非同期プログラミングとは?
プログラミングコードは順番に実行できません.
ページ全体のプログラミングをレンダリングせずに、必要な部分だけを更新します.
XHRとPromise
基本的なAJAX通信技術はXMLHTTPRequestを使用したことがある.
その後、jqueryの出現によりAJAXはブラウザの使用/スパンなどの面で便利になり、符号化方式はイベントベースでコールバック関数を通過する方式となった.
しかし,コールバック関数方式はコールバックにおいてコールバック地獄問題が存在し,次いでXMLTTPRequest(コールバック方式)の代わりにPromiseオブジェクトによって置き換えられる.
Fetch APIはPromiseベースです.
現在、Fetch apiライブラリの一つであるAxiosライブラリが有名です.
(Promiseは同期関数、そして非同期)
ASYNC/AWAIT
既存の非同期コードの実行順序を保証するには、コールバック関数またはthen関数を使用する必要がありますが、async/awaitは短いキーワードを使用して実行順序を保証します.
async/awaitを適用する前に
function prom(that, sec) {
return new Promise(function(resolve, reject){
setTimeout(function() {
console.log(that)
resolve('data')
},sec)
} )
};
function test1() {
console.log(prom(1, 2000))
console.log(prom(2, 4000))
console.log(prom(3, 1000))
}
test1()
결과
// Promise {<pending>}
// 3
// 1
// 2
async/awaitを適用した後
function prom(that, sec) {
return new Promise(function(resolve, reject){
setTimeout(function() {
console.log(that)
resolve('data')
},sec)
} )
};
async function test1 () {
await prom(1, 2000)
await prom(2, 3000)
await prom(3, 1000)
}
test1()
결과
// Promise {<pending>}
// 1
// 2
// 3
Reference
この問題について(ひどうきプログラミング), 我々は、より多くの情報をここで見つけました https://velog.io/@syg0713/비동기-프로그래밍テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol