“dispatch()”是什么意思/做什么,为什么当我们有 .then() 和 .catch() 时使用它

yen*_*yen 11 dispatch node.js axios

我是 ES6 和高级 javascript 新手。我见过使用 axios http 客户端的代码示例,如下所示:

axios.xxx(...).then((res) => dispatch(success(res)) , (err)=> dispatch(error(err)))
Run Code Online (Sandbox Code Playgroud)

而我正在做:

axios.xxx(...).then(function(res){...}).catch(function(err){...});
Run Code Online (Sandbox Code Playgroud)

我尝试在 MDN 上查找调度,但只找到了 DispatchEvent...这不一样吗?我问这个问题是因为虽然我的代码可以工作,但我发现我的 api 中的 http 错误代码(如 403 等)被 axios 作为错误处理,而我更喜欢自己在应用程序中处理它们。(更新:当我向这个问题添加调度标签时,我看到了含义的简短摘要,但我仍然很困惑)。

使用调度的原因或优点是什么?“dispatch()”是 axios、ES6 或 Nodejs 的一部分吗?谢谢。

Ale*_*nov 9

当我看到时dispatch,我立即想到redux-thunk ( Redux的流行中间件)。这是一个很好的例子,说明了为什么传递dispatch是有用的。基本上dispatch用作回调,一旦某个异步操作完成,就会调用该回调。在 redux-thunk 中dispatch,它只是一个函数,它在从 API(异步)获取数据后将操作分派到 Redux 存储。你可以将任何你喜欢的函数传递.then().catch()某个 Promise,它会在成功或失败时被调用。

  • 哦,我明白了...当我尝试调试使用 axios 的代码时,我看到了对调度的引用...然后是几个浏览器选项卡,我最终来到这里:https://twitter.com/dan_abramov/status/770914221638942720 ?lang=en ...我已经忘记了我是如何到达那里的。所以我想这是 redux 特有的,如果我不使用 redux,我不需要担心这个?我只使用普通的反应。 (2认同)