- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我遇到的问题真的很奇怪。由于某种原因,我的 catch
block 中的 put
没有在下面执行。这是我的传奇:
function* postLoginFormSaga(action) {
let response;
try {
// Data from emitting login action
response = yield call(AuthenticationApi.login, action.formData);
yield put(createLoginSucceedAction());
yield put(push('/dashboard/summary'));
} catch (e) {
console.log(e);
yield put(createLoginFailAction(response))
}
}
还有我的 api 调用,它有一个自定义中间件来处理非 2XX
响应:
static login = (formData) => {
return fetch('/api/login', {
method: 'POST',
body: formData,
credentials: 'same-origin'
}).then(handleFetchErrorMiddleWare)
.then(r => r.json())
};
中间件函数是一个简单的函数,用于检查 response
对象的 ok
属性:
export function handleFetchErrorMiddleWare(response) {
if (!response.ok){
throw Error(response.status)
}
return response
}
中间件工作正常,因为我可以在引发异常时看到 console.log(e)
的输出,但 yield put(createLoginFailAction(response))
code> 没有被发出...见下文:
有什么想法吗?谢谢
最佳答案
在我看来,createLoginFailAction
函数中存在错误,如果是这样,就会导致您看到的结果。
关于javascript - catch block 中的 Redux-saga 产量 put() 未执行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45105681/
使用 Python 3.4,我在此处得到 SyntaxError: invalid syntax: >>> xlist = [1,2,3,4,5] >>> [yield(x) for x in xli
在这篇文章 ( http://blogs.msdn.com/oldnewthing/archive/2008/08/13/8854601.aspx ) 中,有一个关于迭代器的流行问题和一个关于极端情况
在 Ruby 中,yield 关键字用于让出执行 block 的闭包。 这个关键字在 Python 语言中有何不同? 最佳答案 在 ruby 中,yield 是用于调用匿名函数的快捷方式。 Rub
这个问题在这里已经有了答案: check if function is a generator (13 个答案) 关闭 7 年前。 检查函数是否为生成器的可靠方法是什么,例如: let fn = f
jquery 中是否可以产生变量?我想在部分 View 中设置一个变量,根据该变量我将某个菜单项设置为事件状态。 我有一个菜单,我想在其中产生像这样的事件项目(在我的主布局 View 中): func
问题 是否可以将 yielding pytest fixtures(用于设置和拆卸)作为参数传递给测试函数? 上下文 我正在测试一个对象,该对象从单个目录中的文件读取数据/向文件写入数据。该目录的路径
我刚刚开始使用 Ruby,我在 Bloc 的类(class)中已经走了很长一段路,但现在我被困在与 yield 和 blocks 有关的练习上(我发现这是迄今为止最难掌握的概念说到学习 ruby
我一直在寻找这一点,但我还没有得到任何关于它的信息!。 我看了很多关于“ yield 返回”的视频和红色文章,我想我对它有更好的理解,但有一点我无法理解 我应该使用 yield return 的正确接
UPDATE(反映最先进的知识水平)状态:2017-05-12 进行此更新的原因是,当我问这个问题时,我并不知道我发现了有关Python3如何“在幕后”工作的信息。 从所有得出的结论是: 如果您为迭代
我正在尝试在 Atmel Studio 7 中为 Arduino 编写代码。为了使其与 Arduino IDE 相似,我正在尝试调整其库。 但是我已经被 delay() 阻止了,它使用了 yield(
我正在构建一个简单的 C++ 服务器,我在其中通过 POST 请求接收图像,将其发送到 GPU 进行处理,一旦我从 GPU 获得结果,就发回响应。 为了能够处理许多同时连接(并学习新的东西),我正在使
我想生成从每片叶子到树根的所有路径。我想用生成器来做,以节省内存(树可以很大)。这是我的代码: def paths(self, acc=[]): if self.is_leaf():
假设我有以下代码(缩小上下文以限制问题范围) public static IEnumerable GetThemColors(){ var ids = GetThePrimaryIds();
我想我也有同样的问题。 Using multiple yields to insert content 我尝试了这个解决方案。我试过 在我的 application.html.erb 中有 conte
我熟悉 yield 以返回值,这主要归功于 this question 但是当它在赋值的右边时,yield 会做什么呢? @coroutine def protocol(target=None):
function * d1 (p) { p-=1; yield p; p-=2; yield p; } var g=d1 (9); var h; console.l
以下代码在 golang 中实现了 yield 模式。作为一项实验,我正在实现一个all permutations 生成器。但是,当我将 slice A 返回到 channel 时,如果我不创建数组的
Node.js 现在有生成器。 我的理解是,生成器可用于编写看起来更加线性的代码,并避免回调 hell 和末日风格编码的金字塔。 所以到目前为止,我的理解是,在生成器内部,代码会一直执行,直到它到达“
我遇到的问题真的很奇怪。由于某种原因,我的 catch block 中的 put 没有在下面执行。这是我的传奇: function* postLoginFormSaga(action) { l
假设我只想快速使以下方法异步运行: ResultType SynchronousCode(ParamType x) { return SomeLongRunningWebRequest(x)
我是一名优秀的程序员,十分优秀!