如果无法从服务器检索数据,我尝试弹出sweetalert
我在main.js中导入了甜蜜警报:
import VueSweetalert2 from 'vue-sweetalert2'
import 'sweetalert2/dist/sweetalert2.min.css'
const app = createApp(App)
app.use(VueSweetalert2)
app.mount('#app')
在桌子里面。我试图调用swal的vue组件,但出现了一个错误,改为(undefined$this.swal):
<script>
import axios from 'axios'
import { onMounted, ref } from 'vue'
export default {
setup() {
let transactions = ref([])
onMounted(() => {
getTransactions()
})
async function getTransactions() {
try {
let { data } = await axios.get('http://127.0.0.1:8000/api/transactions')
transactions.value = data.data
} catch(e) {
this.$swal('Something went wrong.')
}
}
return {
transactions
}
}
}
</script>
有什么建议如何解决这个问题吗?
在main中。js
文件
import VueSweetalert2 from 'vue-sweetalert2';
import 'sweetalert2/dist/sweetalert2.min.css';
const app = createApp(App);
app.use(VueSweetalert2);
window.Swal = app.config.globalProperties.$swal;
app.mount("#app");
使用Swal。fire()
内部合成API
export default {
setup() {
function yourFunctionName() {
Swal.fire('Hello !')
}
}
}
您不能将this
用作install()
中的组件实例,因为该组件尚未创建。还有其他方法可以获取$swal
属性。
vue-Sweetalert2
通过app.config.global属性公开SweetAlert。$swal
或作为提供
-ed$swal
道具。
在Composition API中使用它的一种简单方法是通过inject()
:
import { inject } from 'vue'
export default {
setup() {
const swal = inject('$swal')
async function getTransactions() {
//...
swal('Something went wrong.')
}
}
}
演示1
但是,vue-sweetalert2
文档建议在这种情况下直接使用sweetalert2
:
使用“Vue3:Composition API”时,最好不要使用此包装器。直接给sweetalert2打电话更实用。
您可以像这样直接使用sweetalert2
:
import { onMounted, inject } from 'vue'
import Swal from 'sweetalert2'
export default {
name: 'App',
setup() {
async function getTransactions() {
//...
Swal.fire('Something went wrong.')
}
onMounted(() => getTransactions())
}
}
演示2
没有await并且在非异步方法中调用异步方法的行为是什么?我这样问是因为我看到Visual Studio在调用异步方法时没有显示任何警告,好像这是一件非常正常的事情。在这种情况下,异步方法的行为是否像是同步的?
同步调用异步方法最安全的方法是什么?
我正试图从同步方法运行异步方法。但是我不能等待异步方法,因为我在同步方法中。我一定不理解TPL,因为这是我第一次使用它。 每个方法都需要前一个方法来完成,因为第一个方法的数据用于第二个方法。 Await运算符只能在异步方法中使用。考虑用'async'修饰符标记此方法,并将其返回类型更改为'task' 但是,如果我使用async修饰符,这将是一个异步操作。因此,如果我对的调用没有使用await运算符
问题内容: 我使用的是Spring 4,我注意到了一个奇怪的行为……如果我从普通实例方法多次调用异步方法,那么它们都将在不同的线程中调用,并在随机时间完成。但是,如果我多次从另一个异步方法中调用一个异步方法,那么它们将按顺序完成。我有这样的事情: 我正在使用默认的异步执行器。我应该换一个吗?但是,该执行程序不会重用任何线程,而是每次都启动另一个线程,因此应该没问题……这仅仅是巧合吗?但是我尝试了十
问题内容: 我在数组上进行映射,对于新对象的返回值之一,我需要进行异步调用。 该功能的实现将类似于 我不清楚做到这一点的最佳方法是什么…承诺?嵌套的回调?在ES6或ES7中使用某些东西,然后与Babel进行转换? 目前实现此目的的最佳方法是什么? 谢谢! 问题答案: 一种方法是(ES6)。 该答案将在Node 4.0+中起作用。较旧的版本将需要Promise polyfill或库。我还使用了ES6