티스토리 뷰
`deprecated` 된 API를 구현하는 좋은 아이디어가 있어 메모해둔다.
해결책:
Q 라이브러리는 어떤 API가 deprecated 되었을 때 아래와 같이 구현하고 있다.
promise.valueOf = deprecate(function () {
if (messages) {
return promise;
}
var nearerValue = nearer(resolvedPromise);
if (isPromise(nearerValue)) {
resolvedPromise = nearerValue; // shorten chain
}
return nearerValue;
}, "valueOf", "inspect");
`promise.valueOf()`를 호출하면,
'valueOf는 deprecate 되었으니 inspect를 사용하라'는 콘솔 워닝이 뜬다.
원본 메서드는 그대로 두고, `deprecate()`로 묶어 새 API에 대한 가이드를 주는 아이디어가 좋다.
`deprecate()` 함수는 아래와 같이 생겼다.
function deprecate(callback, name, alternative) {
return function () {
if (typeof console !== "undefined" &&
typeof console.warn === "function") {
console.warn(name + " is deprecated, use " + alternative +
" instead.", new Error("").stack);
}
return callback.apply(callback, arguments);
};
}
반응형
댓글
공지사항