일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 접근성
- 마크업
- 이쁜 웹디자인
- 일러스트
- 스크롤 웹사이트
- 웹사이트
- 웹 접근성
- 유니크
- 특이한 웹디자인
- 신박한 웹디자인
- 우주 웹디자인
- 웹디자인
- 귀여운 웹디자인
- 스크롤
- IR기법
- 사람 일러스트
- jquery 웹디자인
- 3D
- 이미지 리플레이스먼트
- 시맨틱
- 신박한 디자인
- Image Replacement
- mark up
- 스크롤 웹디자인
- 마우스오버
- 디자인
- 시맨틱 마크업
- 깔끔한 웹디자인
- 배경이 이쁜 웹디자인
- jQuery
- Today
- Total
Play Ground
[Vue.js] promise 사용하기 본문
promise를 사용하여 api콜하는 부분을 디자인해주었음
mixin의 promise부분을 살리고
vm.promise(function)와 같이 사용하면 될듯
then 안에서 promise가 리턴되어야 그 결과값을 바탕으로 다음 then으로 넘어감
main.jsexport default { methods: { promise: function(func){ //프로미스 만들기 return new Promise(function(resolve, reject){ resolve(func()) }) }, call: function(action) { var vm = this var successResult vm.promise(function(){ if (action.confirmMsg !== undefined) return vm.$confirm({ content: action.confirmMsg }) }) .then(() => { return action.run() }) .then(function(result) { successResult = result if (action.successMsg !== undefined){ return vm.$alert({ content: action.successMsg }) } }) .then(() => action.success(successResult)) .catch(function(error){ vm.errorAlert(error, action.errorTypeHandler) }) } }
import Vue from 'vue' import myCall from './services/Call.js' Vue.prototype.$call = myCalltest.vue
<template> ... </template> <script> import mixins from '../mixins/mixins.js' export default { name: 'test', mixins: [mixins], methods: { submit: function() { var vm = this if((vm.userId == '') || vm.userPw == '') return var data = { userId : vm.userId, userPw : vm.userPw } var action = { run : function() { return vm.$call.login(vm.userId, vm.userPw) }, success : function(result) { localStorage.setItem('token', result.data.token) localStorage.setItem('emailId', result.data.emailId) document.location.href = "/" } } vm.call(action) } } }
'Programming > Vue.js' 카테고리의 다른 글
[Vue.js] ubuntu에 nginx 설치하고 vue.js 설치하기 (1) | 2019.02.01 |
---|---|
[Vue.js] url 뒤에 붙는 #(hashtag) 없애기 (0) | 2019.01.13 |
[vue.js] Eventbus 만들기 (0) | 2018.10.22 |
[Vue.js] 페이징 로직 (0) | 2018.10.22 |
[Vue.js] class를 만들어 vue객체 사용하기 (0) | 2018.09.20 |
[Vue.js] mixin 전역 등록하기 (0) | 2018.09.20 |
[vue] img src data binding (0) | 2018.09.07 |
vue.js radio button 토글 이벤트 걸기 (0) | 2018.07.12 |