[TIL]21.06.23
👨💻 今日習ったこと fs.readFile() Promise.all() fetch()
非同期組織コードは、時間がかかるコードを個別に動作させ、他のコードから開始します.これまでの例では、故意に時間を遅く働かせていましたが、正しい非同期サンプルコードを表示するために、サーバを学習しながらゆっくりと理解することができ、期待したり恐れたりします.
今日も知識を受け入れるスピードが他の人より速くないのを見たので、時間を変えたいです.
努力...さあ.
fs.readFile(파일Path, 옵션('utf-8'등등), callback)
: callback은 보통 다음과 같이 사용한다. fs.readFile의 사용법이 다음과 같이
명시되어있기때문에 군말말고 따라쓴다.
fs.readFile(파일Path, 옵션('utf-8'등등), function(err, data){
if(err){
callback(err);
}else{
callbakc(data);
}
})
: 느낌이 Promise쓸때 성공적으로 실행되면 resolve를,
실패시 에러를 반환하는 reject와 비슷하다.
그래서 그런걸까? fs.readfile()은 비동기 메소드이다.
const test1 = () => {
return new Promise((resove, reject) => {
resolve(1);
})
}
const test2 = new Promise((resove, reject) => resolve(2);
function test(){
return Promise.all([test1, test2])
.then(el =>
console.log('test1 : ', el[0], ', test2 : ', el[1]))
}
// expect output => test1 : 1, test2 : 2
: 위와같이 Promise객체를 가지고 resolve로 값을 반환하는 변수나
함수를 Promise.all의 인자 값으로 배열을 감싸서 넣어주면 반환값
또한 인자를 넣은 순서대로 배열로 감싸져 나오기 때문에 저렇게 사용해주면 된다.
fetch는 객체를 정보로 가진 데이터를 url으로 불러와 사용하기위해 사용되는 메소드다.
또한 then으로 반환하는 건 Promise객체다 거기서 json파일을 객체로 바꿔야하므로 코드
는 다음과 같다
/* 객체를 정보로 가진 데이터를 url
let data = {
name: '채린',
age: '나랑 동갑'
}
*/
function test(){
return fetch(객체를 정보로 가진 데이터를 url)
.then(response => response.json())
.then(console.log); // .then(el => console.log(el))과
// 같은 코드
}
/// expect output =>
/*
{
name: '채린',
age: '나랑 동갑'
}
これらがどのように非同期で使用されているのかはまだ分からないが、callback地獄を出て、毒性の良いコードで実現されることを知っている.非同期組織コードは、時間がかかるコードを個別に動作させ、他のコードから開始します.これまでの例では、故意に時間を遅く働かせていましたが、正しい非同期サンプルコードを表示するために、サーバを学習しながらゆっくりと理解することができ、期待したり恐れたりします.
今日も知識を受け入れるスピードが他の人より速くないのを見たので、時間を変えたいです.
努力...さあ.
Reference
この問題について([TIL]21.06.23), 我々は、より多くの情報をここで見つけました https://velog.io/@juho00ng/TIL21.06.23テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol