48 lines
		
	
	
		
			1022 B
		
	
	
	
		
			Vue
		
	
	
			
		
		
	
	
			48 lines
		
	
	
		
			1022 B
		
	
	
	
		
			Vue
		
	
	
| <docs>
 | ||
| ---
 | ||
| order: 7
 | ||
| version: 3.0
 | ||
| title:
 | ||
|   zh-CN: 基于 Promise 的异步关闭 (3.0+)
 | ||
|   en-US: Asynchronously close on Promise (3.0+)
 | ||
| ---
 | ||
| 
 | ||
| ## zh-CN
 | ||
| 
 | ||
| 点击确定后异步关闭 Popconfirm,例如提交表单。
 | ||
| 
 | ||
| ## en-US
 | ||
| 
 | ||
| Asynchronously close a popconfirm when the OK button is pressed. For example, you can use this pattern when you submit a form.
 | ||
| 
 | ||
| </docs>
 | ||
| 
 | ||
| <template>
 | ||
|   <a-popconfirm title="Title" @confirm="confirm" @cancel="cancel">
 | ||
|     <a-button type="primary">Open Popconfirm with Promise</a-button>
 | ||
|   </a-popconfirm>
 | ||
| </template>
 | ||
| <script lang="ts">
 | ||
| import { defineComponent } from 'vue';
 | ||
| import { message } from 'ant-design-vue';
 | ||
| export default defineComponent({
 | ||
|   setup() {
 | ||
|     const confirm = (e: MouseEvent) => {
 | ||
|       console.log(e);
 | ||
|       return new Promise(resolve => {
 | ||
|         setTimeout(() => resolve(true), 3000);
 | ||
|       });
 | ||
|     };
 | ||
| 
 | ||
|     const cancel = (e: MouseEvent) => {
 | ||
|       console.log(e);
 | ||
|       message.error('Click on No');
 | ||
|     };
 | ||
|     return {
 | ||
|       confirm,
 | ||
|       cancel,
 | ||
|     };
 | ||
|   },
 | ||
| });
 | ||
| </script>
 |