반응형
Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
Tags
- 댓글달기
- Vue
- Wecode
- input
- CSS
- v-html
- State
- react
- JavaScript
- 자바스크립트
- event
- App.vue
- mapGetters
- nodejs
- 쉬운설명
- TypeScript
- webpack
- 리액트
- express
- jsx
- MySQL
- 자료구조
- vuex
- sass
- HOC
- storybook
- scss
- ES6
- Vue.js
- Vue transition
Archives
- Today
- Total
익명의 개발노트
[vue] promise패턴, v-modal 클릭 이벤트 방지 본문
반응형
1. new Promise( function(resolve, reject)) 패턴
프로미스를 사용할때는 2가지 패턴이 있다. new Promise(function(resolve, reject)){}, Promise.resolve(function())
에러처리를 할때 reject를 처리하냐 안하냐에 따라서 위의 두가지 방법중 하나를 선택하면 좋을 것 같다.
우선 백엔드에서 가져 온 값이 프로미스 기반이기때문에 A->B->C 로 전달해서 써야하는 상황이 왔다.
C는 뷰를 담당하는 화면이고 , A,B는 비지니스 로직단이다. 따라서 C는 vue파일로 되어있고, A,B는 js파일로 구성되어 있다.
A->B로 전달 클로져로 전달 받았는데, B에서 C로 갈때 그냥쓰면 undefined가 뜬다.
C에서는 우선 프로미스를 받기때문에 async, await으로 받아주고,(굳이 이걸 사용하지 않아도 된다)
//B
static async getTokenlist() {
return new Promise(function(resolve, reject) {
UniconAPI.getTokenlist(
function (response) {
if (response.data.err_code == 0) {
resolve(response.data.data.result.data);
} else {
ehandler.throw(Errors.raise(Errors.ERRCODE.OPERATION.ServerExecutionError,''));
}
},
function (err) {
logger.log.debug("err", err);
reject(err);
ehandler.throw(Errors.raise(Errors.ERRCODE.OPERATION.OtherError,'',err));
}
);
});
}
new Promise로 감싸주고 resolve('보내야하는 데이터')를 작성해 주면 받는 쪽에서 받을 수 있다.
resolve는 then으로 보면된다.
2. b-modal 라이브러리 클릭이벤트 방지
b-modal을 사용하면 클릭이벤트를 조절 할 수 있다.
모달 외부를 클릭했을때 모달이 닫히게 하거나, ESC를 눌러서 닫게 하거나 등등 이런건 기본값으로 설정되어 있고,
만약에 그런 기능을 막고 싶을 경우
no-close-on-esc //esc눌러도 모달 안꺼지게
no-close-on-backdrop // 외부눌러도 모달 안꺼지게
등등
<b-modal id="ConfirmBox" title="Send modal" ok-disabled centered hide-footer no-close-on-backdrop>
이런식으로 추가해서 효과를 적용한다.
반응형
'코딩일기 > TIL' 카테고리의 다른 글
[vue] image import error처리, 멀티 버튼 이벤트 처리 (0) | 2019.09.25 |
---|---|
promise chain (0) | 2019.09.19 |
개행문자 브라우저에서 줄바꿈으로 보여주기, 리스트에서 클릭한 값을 제외하고 화면에 보여주기 (0) | 2019.09.15 |
[vue]checkBox 중복체크 방지, input창 글자수 제한 (0) | 2019.09.10 |
git stash, 이미 올라간 node_modules 처리, Vue-props, (0) | 2019.09.04 |
Comments