
๐ func์ ๋ฐ๋ก ์คํ๋์ง ์์ง๋ง ๋ค๋ฅธ ํจ์์ ์
๋ ฅ๊ฐ์ผ๋ก ์ ๋ฌ๋์ ๋ค๋ฅธ ํจ์์ ์ํด์ ๋์ค์ ํธ์ถ๋๋ค!!
words = ['apple', 'banana', 'grape'];
function callback(element){
return element.length > 6;
}
newWords = wrods.filter(callback);
words = ['apple', 'banana', 'grape'];
newWords = wrods.filter(function(element){
return element.length > 6;
});
words = ['apple', 'banana', 'grape'];
newWords = wrods.filter((element) => {
return element.length > 6;
});
newWords = wrods.filter(element => element.length > 6);
words = ['apple', 'banana', 'grape'];
function myfilter(origin, callback) {
var result = [];
for(var i = 0; i < origin.length; i++){
var current = origin[i];
if(callback(current)){
result.push(current);
}
}
}
newWords = myfilter(words, element => element.length > 6);
promise ๐ ์คํ์ ๋ฐ๋ก ํ๋, ๊ฒฐ๊ณผ๊ฐ์ ๋์ค์ ๋ฐ๋ ๊ฐ์ฒด
const condition = true; // true๋ฉด resolve, false๋ฉด reject
const promise = new Promise((resolve, reject) => {
if (condition) {
resolve('์ฑ๊ณต');
} else {
reject('์คํจ');
}
});
// ๋ค๋ฅธ ์ฝ๋๊ฐ ๋ค์ด๊ฐ ์ ์์
promise
.then((message) => {
console.log(message); // ์ฑ๊ณต(resolve)ํ ๊ฒฝ์ฐ ์คํ
})
.catch((error) => {
console.error(error); // ์คํจ(reject)ํ ๊ฒฝ์ฐ ์คํ
})
.finally(() => { // ๋๋๊ณ ๋ฌด์กฐ๊ฑด ์คํ
console.log('๋ฌด์กฐ๊ฑด ์คํ');
});
const condition = false; // true๋ฉด resolve, false๋ฉด reject
const promise = new Promise((resolve, reject) => {
if (condition) {
resolve('์ฑ๊ณต');
} else {
reject('์คํจ');
}
});
// ๋ค๋ฅธ ์ฝ๋๊ฐ ๋ค์ด๊ฐ ์ ์์
promise
.then((message) => {
return new Promise((resolve, reject) => {
resolve(message);
});
})
.then((message2) => {
console.log(message2);
return new Promise((resolve, reject) => {
resolve(message2);
});
})
.then((message3) => {
console.log(message3);
})
.catch((error) => {
console.error(error); // ์คํจ(reject)ํ ๊ฒฝ์ฐ ์คํ
})

function findAndSaverUser(Users) {
Users.findOne({})
.then((user) => {
user.name = 'zero';
return user.save();
})
.then((user) => {
return Users.findOne({ gender: 'm' });
})
.then((user) => {
// ์๋ต
})
.catch(err => {
console.error(err);
});
}
ํจ์ ์ ์ธ๋ถ๋ฅผ ์ผ๋ฐ ํจ์ ๋์ async function์ผ๋ก ๊ต์ฒดํ ํ, ํ๋ก๋ฏธ์ค ์์ await์ ๋ถ์ธ๋ค.
async ๋ ์๋ฌต์ ์ผ๋ก promise๋ฅผ ๋ฐํํ๋ค.await ๋ resolve, reject์ ๊ฐ์ promise ๊ฐ์ฒด๋ฅผ ๊ธฐ๋ค๋ฆฐ๋ค.promise ์ฝ๋
function findAndSaverUser(Users) {
Users.findOne({})
.then((user) => {
user.name = 'zero';
return user.save();
})
.then((user) => {
return Users.findOne({ gender: 'm' });
})
.then((user) => {
// ์๋ต
})
.catch(err => {
console.error(err);
});
}
async/await ์ฝ๋
async function findAndSaverUser(Users) {
try{
let user = await Users.findOne({});
user.name = 'zero';
user = await user.save();
user = await Users.findOne({ gender: 'm' });
// ์๋ต
} catch (error) {
console.error(error);
}
}
ํจ์๋ ํด๋น ํ๋ก๋ฏธ์ค๊ฐ resolve๋ ๋๊น์ง ๊ธฐ๋ค๋ฆฐ ๋ค ๋ค์ ๋ก์ง์ผ๋ก ๋์ด๊ฐ๋ค.

โ์ถ์ฒ : ์ ํ๋ธ ์ํ์ฝ๋ฉ, Node.js ๊ต๊ณผ์