작은 응용 프로그램을 작성 중이며 콜백 패턴을 사용하는 대신 DB와 통신하며 약속을 사용하여 코드를 간소화합니다. 공정한 양의 코딩을 수행 한 후에는 코드에서 매우 자주 패턴을 볼 수 있으므로 비슷한 논리가 한 곳에서 발생하도록 리팩터링 할 수 있어야합니다.자바 스크립트의 리팩터링 패턴
var queryString = "select * from users u inner join "+
"(select user_id, count(id) cnt from applications "+
"where id in (select id from applications where "+
"created_at > current_date - interval '1 week') "+
"group by user_id) a on u.id = a.user_id order by a.cnt desc";
var self = this;
return new Promise(function _promise(resolve, reject) {
req.client.query(queryString, [], function result(error, result) {
req.done(error);
if (error) {
console.log('error ' + error.message);
return reject(error);
}
var users = result.rows.map(function(row) {
return new User(row);
});
resolve(users);
});
});
위의 패턴은 if
후 내용입니다 변화하는 유일한 것은 내가 그것을 밖으로 리팩토링하는 데 사용할 수있는 기능적 접근 방법은 나의 모든 방법이,이다?
query(req, "select * .... etc")
.then(result => {
return result.rows.map(function(row) {
return new User(row);
});
})
.catch(reason => {
// error handling goes here
});
그래서 항상 당신을'resolve (users)'하겠습니까? 그럴 가능성이 희박한 것 같습니다 –
@ JaromandaX 나는 변수가 될 것이라고 생각합니다. 설명을 수정하겠습니다. – CodeYogi
모두 좋다 : p –