await store.dispatch().then() 怎么使用
时间: 2024-02-20 12:58:06 浏览: 157
你可以这样使用 `await store.dispatch().then()`:
```
await store.dispatch('ESourcingModule/GetMyRequest', searchView.value).then(() => {
event.InProcessCount = store.getters['ESourcingModule/myRequestInProcessCount']
})
```
这里使用了 `then()` 方法来在异步操作完成后执行一个回调函数,确保数据已经获取到再进行后续操作。当异步操作完成时,将会调用回调函数,这里我们将获取到的数据行数赋值给 `event.InProcessCount`。另外,我还使用了 Vuex 的 `getter` 方法来获取数据行数,你需要在 Vuex 中定义一个相应的 getter 方法:`myRequestInProcessCount`。
相关问题
async function InProcessCount() { await store.dispatch('ESourcingModule/GetMyRequest', searchView.value).then((list) => { // eslint-disable-next-line @typescript-eslint/no-unsafe-call event.InProcessCount = list.filter((o: { ViewType: string }) => o.ViewType === 'InClarification' || o.ViewType === 'SupplementEventDetails').length }) } void InProcessCount() 还是没有同步
你需要将 `async function InProcessCount()` 改为:
```
async function InProcessCount() {
const list = await store.dispatch('ESourcingModule/GetMyRequest', searchView.value)
event.InProcessCount = list.filter((o: { ViewType: string }) => o.ViewType === 'InClarification' || o.ViewType === 'SupplementEventDetails').length
}
```
这里使用了 async/await 同步获取数据,将 `await store.dispatch()` 的结果存储在变量 `list` 中,当获取到数据后再进行过滤操作,最后将结果赋值给 `event.InProcessCount`。另外,你需要删除 `void InProcessCount()` 这行代码,因为它会将函数返回值设置为 `undefined`,导致数据无法同步。
if (res.code == 401 || res.code == 403) { // to re-login MessageBox.confirm('账号已退出,请重新登录', '确认登出', { confirmButtonText: '重新登录', cancelButtonText: '确认', type: 'warning' }).then(() => { console.log(2516) store.dispatch('user/resetToken').then(() => { location.reload() }).catch(err => { console.log(215) }) }).catch(async () => { await store.dispatch("user/toLogin"); location.reload() console.log(25) }) } return Promise.reject(new Error(res.message || 'Error')) } else { return res } },解释这段代码
这段代码是一个条件判断语句,它判断了一个变量 `res` 的属性 `code` 是否等于 401 或者等于 403。如果满足其中任一条件,就会执行相应的操作。
在这段代码中,如果 `res.code` 等于 401 或者等于 403,就会弹出一个确认框(MessageBox),提示用户账号已退出,需要重新登录。用户可以选择重新登录或者取消。如果用户选择重新登录,会调用 `resetToken` 方法重置用户的令牌(token),然后重新加载页面。如果用户取消登录,会调用 `toLogin` 方法进行登录操作,然后重新加载页面。
如果 `res.code` 不等于 401 和 403,则会返回一个 Promise 对象,该对象的状态为拒绝,并抛出一个带有消息字符串 `'Error'` 的错误对象。
总之,这段代码的作用是在特定条件下进行账号退出和重新登录的处理,并返回相应的结果或错误信息。
阅读全文