首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

为什么Vuex的操作返回promise<pending>?

Vuex的操作返回promise<pending>的原因是因为Vuex的操作是异步的,而promise是用于处理异步操作的一种机制。当我们在Vuex中进行一些异步操作时,比如发送网络请求或者执行一些耗时的操作,我们可以使用promise来处理这些异步操作的结果。

返回的promise对象可以用于链式调用,可以在异步操作完成后执行一些额外的操作,比如更新页面的数据或者执行其他的异步操作。promise对象有三种状态:pending(进行中)、fulfilled(已成功)和rejected(已失败)。当异步操作还在进行中时,promise的状态为pending;当异步操作成功完成时,promise的状态变为fulfilled,并返回异步操作的结果;当异步操作失败时,promise的状态变为rejected,并返回错误信息。

在Vuex中,我们可以通过使用异步操作来修改状态,比如在actions中发送网络请求获取数据,然后在mutations中更新状态。当我们在actions中执行异步操作时,可以返回一个promise对象,以便在异步操作完成后执行一些额外的操作。这样可以保证在异步操作完成之前,我们可以对状态进行一些处理,比如显示加载中的状态或者禁用按钮等。

总结起来,Vuex的操作返回promise<pending>是为了处理异步操作的结果,并且可以在异步操作完成后执行一些额外的操作。这样可以更好地管理和控制状态的变化,提高应用程序的可维护性和用户体验。

推荐的腾讯云相关产品:腾讯云云函数(Serverless Cloud Function),腾讯云云数据库(TencentDB),腾讯云云服务器(CVM),腾讯云云原生容器服务(Tencent Kubernetes Engine,TKE)。

腾讯云云函数(Serverless Cloud Function):https://cloud.tencent.com/product/scf 腾讯云云数据库(TencentDB):https://cloud.tencent.com/product/cdb 腾讯云云服务器(CVM):https://cloud.tencent.com/product/cvm 腾讯云云原生容器服务(Tencent Kubernetes Engine,TKE):https://cloud.tencent.com/product/tke

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

为什么 Vuex mutation 和 Redux reducer 中不能做异步操作

vuex 一条重要原则就是要记住 mutation 必须是同步函数 请看例子 mutations: { someMutation (state) { api.callAsyncMethod...然而,在上面的例子中 mutation 中异步函数中回调让这不可能完成:因为当 mutation 触发时候,回调函数还没有被调用,devtools 不知道什么时候回调函数实际上被调用——实质上任何在回调函数中进行状态改变都是不可追踪...Redux 先从Redux设计层面来解释为什么Reducer必须是纯函数 如果你经常用React+Redux开发,那么就应该了解Redux设计初衷。...Redux设计参考了Flux模式,作者希望以此来实现时间旅行,保存应用历史状态,实现应用状态可预测。...所以整个Redux都是函数式编程范式,要求reducer是纯函数也是自然而然事情,使用纯函数才能保证相同输入得到相同输入,保证状态可预测。

2.8K30

面试题-为什么要使用PromisePromise优点

1.指定回调函数方式更加灵活: 旧: 必须在启动异步任务前指定 promise: 启动异步任务 => 返回promie对象 => 给promise对象绑定回调函数(甚至可以在异步任务结束后指定...).then(successCallback, failureCallback); 可以在异步操作完成后再指定回调函数 setTimeout(() => { promise.then(successCallback..., failureCallback) }, 3000) 2.支持链式调用(将异步操作以同步操作流程表达出来), 可以解决回调地狱问题 什么是回调地狱?...当处于pending状态时,无法得知目前进展到哪一个阶段(刚刚开始还是即将完成) const someAsyncThing = function() { return new Promise(function...这就是说,Promise 内部错误不会影响到 Promise 外部代码,通俗说法就是“Promise 会吃掉错误”。

55520

vue面试题总结(二)

如果请求来数据不是要被其他组件公用,仅仅在请求组件内使用,就不需要放入 vuex state 里如果被其他地方复用,请将请求放入 action 里,方便复用,并包装成 promise 返回 18...1.Promise是异步编程一种解决方案,它是一个容器,里面保存着某个未来才会结束事件(通常是一个异步操作结果。从语法上说,Promise 是一个对象,从它可以获取异步操作消息。...Promise 提供统一 API,各种异步操作都可以用同样方法进行处理。...promise对象是一个构造函数,用来生成Promise实例; 2.promise两个特点 对象状态不受外界影响 && 一旦状态改变,就不会再变,任何时候都可以得到结果(pending状态–>fulfilled...|| pending–>rejected) 29.axios特点有哪些?

1.5K40

Promise 对象讲解事件循环机制

我们可以简单把它理解为一个容器,它里面装是一个异步操作(某个未来才会结束事件)结果。 Promise 操作返回对象还是一个新 Promise 对象。...Promise主要有以下特点: 1 Promise对象状态不受外界影响,它有三种状态: pending:进行中 fulfilled:已成功 rejected:已失败 只有异步操作结果才能确定当前处于哪种状态...Promise接收一个函数作为参数,函数里有resolve和reject两个参数: 1. resolve方法作用是将Promisepending状态变为fulfilled,在异步操作成功之后调用,...2. reject方法作用是将Promisepending状态变为rejected,在异步操作失败之后调用,可以将异步返回结果作为参数传递出去。...Promiseall方法提供了并行执行异步操作能力,并且在所有异步操作都执行完毕后才执行回调,只要其中一个异步操作返回状态为rejected那么Promise.all()返回Promise即为rejected

1.8K30

那些高级前端是如何回答面试题_2023-02-24

rejected 状态新 Promsie,且它值是第一个 rejected Promise 值;只要有一个 Promisepending,则返回一个 pending 状态Promise...:所有 Promise 状态都变化了,那么新返回一个状态是 fulfilled Promise,且它值是一个数组,数组每项由所有 Promise 值和状态组成对象;如果有一个是 pending...状态,则返回第一个是 fulfilled 新实例;其他情况都会返回一个 pending 新实例;Promise.any = function(promiseArr) { let index...为什么 Vuex mutation 中不能做异步操作?...5、modules => 模块化Vuex1、Vuex中所有的状态更新唯一途径都是mutation,异步操作通过 Action 来提交 mutation实现,这样可以方便地跟踪每一个状态变化,从而能够实现一些工具帮助更好地了解我们应用

46630

vue高频面试题合集(二)附答案

pending) { // 如果多次调用nextTick 只会执行一次异步 等异步队列清空之后再把标志变为false pending = true; timerFunc(); }}...vue 中使用了哪些设计模式1.工厂模式 - 传入参数即可创建实例虚拟 DOM 根据参数不同返回基础标签 Vnode 和组件 Vnode2.单例模式 - 整个程序有且仅有一个实例vuex 和 vue-router...缓存特性,避免每次获取值时,都要重新计算;当我们需要在数据变化时执行异步或开销较大操作时,应该使用 watch,使用 watch 选项允许我们执行异步操作 ( 访问一个 API ),限制我们执行该操作频率...优点:保证性能下限: 框架虚拟 DOM 需要适配任何上层 API 可能产生操作,它一些 DOM 操作实现必须是普适,所以它性能并不是最优;但是比起粗暴 DOM 操作性能要好很多,因此框架虚拟...$store.commit('SET_NUMBER',10)v-for 为什么要加 key如果不使用 key,Vue 会使用一种最大限度减少动态元素并且尽可能尝试就地修改/复用相同类型元素算法。

98130

社招前端二面面试题

rejected 状态新 Promsie,且它值是第一个 rejected Promise 值;只要有一个 Promisepending,则返回一个 pending 状态Promise...:所有 Promise 状态都变化了,那么新返回一个状态是 fulfilled Promise,且它值是一个数组,数组每项由所有 Promise 值和状态组成对象;如果有一个是 pending...状态,则返回第一个是 fulfilled 新实例;其他情况都会返回一个 pending 新实例;Promise.any = function(promiseArr) { let index...对于 || 来说,如果条件判断结果为 true 就返回第一个操作值,如果为 false 就返回第二个操作值。...&& 则相反,如果条件判断结果为 true 就返回第二个操作值,如果为 false 就返回第一个操作值。

74420

基于 Vuex 时移操作(撤回恢复)实现

vuex 实现原理其实很简单,一句话就可以概括:维护一个 state快照 历史记录数组和当前索引值, undo 和 redo 分别对应索引回退(backward)前移(forward)。...搭配源码@bugonly/vuex-undo-redo阅读口味更佳。...时移操作作用域 这一点就很简单了,编辑器是应用一个模块,在 vuex 中是 store 一个 module,所以时移操作插件函数在订阅 mutations 时需要判断 mutation-type...: string[]; /** * 过滤器,返回 false 时不执行后续逻辑 * 使用 filter 可以编写更复杂过滤逻辑 * @param mutation * @param...其实有很多种解决方案,最简单就是每个 sheet 在 vuex store 对应一个 module,然后为每个 module 单独维护一个操作历史栈,这属于暴力解法,简单有效但很挫。

1.3K20

为什么vuexMutations是同步,而Actions是异步

本文是一篇笔者记录vuex关于mutations与actions笔记。 正文开始......避坑 如果使用vue-cli2模版搭建基础项目,注意,如果使用vue版本是2,当你默认安装vuex肯定是4.x版本了,这里需要注意是,你要降低vuex版本到3.x版本,不然store挂载不到vue上...总结 灵魂拷问,为什么会有actions中是异步,而mutations是同步,从官方解释来看,修改state数据必须只能mutations中修改,而假设mutions内部有异步,那么会带来devtool...只集中干一件事,直接修改state值 actions是异步操作,actions中可以有多个异步操作,但是最终结果依然是交给mutations去修改,也就是说actions中异步操作副作用统一交给了...mutations去记录 多个异步任务可以在actions中触发,dispatch('xxx')返回是一个Promise 本文code example[2] 参考资料 [1]vuex: https:/

2.1K21
领券