ECMAScript 6 학습노트의 ---async 함수
1969 단어 ReactECMAScript육
함의
async 함수는 무엇입니까?한마디로 Generator 함수의 문법 설탕이다.앞의 문장에는 두 개의 파일을 차례로 읽는 Generator 함수가 있습니다.
const fs = require('fs');
const readFile = function (fileName) {
return new Promise(function (resolve, reject) {
fs.readFile(fileName, function(error, data) {
if (error) return reject(error);
resolve(data);
});
});
};
const gen = function* () {
const f1 = yield readFile('/etc/fstab');
const f2 = yield readFile('/etc/shells');
console.log(f1.toString());
console.log(f2.toString());
};
위 코드의 함수gen은 async 함수로 쓸 수 있는데, 바로 아래와 같다.
const asyncReadFile = async function () {
const f1 = await readFile('/etc/fstab');
const f2 = await readFile('/etc/shells');
console.log(f1.toString());
console.log(f2.toString());
};
를 비교해 보면
async
함수는 Generator
함수의 별표(*)
를 async
, yield
를 await
로 바꾸는 것이다.활용단어참조
몇 밀리초 후에 값을 출력할지 지정합니다.
function timeout(ms) {
return new Promise((resolve) => {
setTimeout(resolve, ms);
});
}
async function asyncPrint(value, ms) {
await timeout(ms);
console.log(value);
}
asyncPrint('hello world', 50);
-----hello world
await 명령
정상적인 경우,
await
명령 뒤에 Promise
대상이 있으며, 이 대상의 결과를 되돌려줍니다.Promise
대상이 아니면 해당 값을 반환합니다.async function f() {
return 'hello world';
}
f().then(v => console.log(v))
-----hello world
await
뒤의 비동기 작업이 잘못되면 async
함수가 되돌아오는 Promise
대상이 reject
되는 것과 같다.async function f() {
await new Promise(function (resolve, reject) {
throw new Error(' ');
});
}
f()
.then(v => console.log(v))
.catch(e => console.log(e))
// Error:
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
바삭바삭하고 간단한 결제 페이지 만들기먼저 Next.js에서 프로젝트를 만듭니다. Vercel & Next.js가 매우 편하기 때문에 최근에는이 구성을 사용하고 있습니다. 그런 다음 Tailwind CSS를 넣습니다. Tailwind CSS를 사용하면 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.