我的登录过程有些长,目前依赖3个api调用:
export const authenticationSignIn = (email, password) =>
(dispatch) => {
dispatch({ type: AUTHENTICATION_REQUEST });
apiAccountStatus(email, password)
.then(({ data }) => {
const status = data.status;
if (status === 'ACCOUNT_CREATED') {
apiSignIn(email, password)
.then(({ data: sessionData }) => {
apiIndexAccounts()
.then(({ data: accountsData }) => {
dispatch({ type: AUTHENTICATION_SUCCESS });
window.router.transitionTo('/dashboard/home');
});
});
} else if (status === 'SOMETHING ELSE') {
// TODO: HANDLE SOMETHING ELSE
}
})
.catch(({ response }) => {
dispatch({ type: AUTHENTICATION_FAILURE });
dispatch(notificationShow('ERROR', response.data.type));
});
};
如您所见,此函数非常详细,但是每个嵌套api调用均依赖于先前返回的数据,我正在尝试尽可能多地清除此数据(调度位是redux特有的,但是这些本质上触发了传入的任何内容)。最后,您会看到一个catch
声明,我的问题是,该catch声明是否适用于所有允诺apiAccountStatus
?
最后,您会看到一个catch语句,我的问题是,该catch语句是否能满足所有诺言?
不,它仅适用于外部承诺,即then
调用返回的承诺。需要将其拒绝catch
才能激活回调。要拒绝此承诺,apiAccountStatus(…)
必须拒绝或then
回调必须抛出异常或
返回将被拒绝的承诺 。
最后一件事就是您所缺少的-您在then
回调中创建了更多的Promise ,但是您没有使用return
它们,因此它们不会链接。你所要做的
export function authenticationSignIn(email, password) {
return (dispatch) => {
dispatch({ type: AUTHENTICATION_REQUEST });
apiAccountStatus(email, password)
.then(({data: {status}}) => {
if (status === 'ACCOUNT_CREATED') {
return apiSignIn(email, password)
// ^^^^^^
.then(({ data: sessionData }) => {
return apiIndexAccounts()
// ^^^^^^
.then(({ data: accountsData }) => {
dispatch({ type: AUTHENTICATION_SUCCESS });
window.router.transitionTo('/dashboard/home');
});
});
} else if (status === 'SOMETHING ELSE') {
// TODO: HANDLE SOMETHING ELSE
}
})
.catch(({ response }) => {
dispatch({ type: AUTHENTICATION_FAILURE });
dispatch(notificationShow('ERROR', response.data.type));
});
};
}
问题内容: 关于在Java中使用Readers和Streams总是困扰我的一件事是该方法可能引发异常。由于将close方法放在finally块中是个好主意,因此这需要一些尴尬的情况。我通常使用这种构造: 但是我也看到了这种构造: 我更喜欢第一种结构,因为只有一个捕获块,而且看起来更优雅。是否有理由真正喜欢第二种或另一种结构? 更新:将有所作为,如果我指出,无论与只引发IOException?因此,
让我们假设我有4个表: 'users'(id,username)、 'photos_comments'(id,photo_id,user_id,name)、 'photos_likes'(id,photo_id,user_id,text)、'photos_likes'(id,photo_id,user_id,test)。 我要计算的所有评论和喜欢的每个用户在所有他上传的照片的总和。为此,我试图构建
问题内容: 我正在做一个小实验,尝试为嵌套div替换背景颜色。 这是我打算实现的(没有内联样式): 我觉得我一定缺少明显的东西!我尝试过,但这似乎仅适用于一个级别。 这是针对生成div的实验,因此解决方案需要是无止境的(不是沿着div div div div div = white的界线)。我知道使用JavaScript非常简单,只需 寻找纯CSS解决方案即可 。 问题答案: 正如Lister先生
问题内容: 这看起来很基础,是否允许您将链接放在链接内? 我试图使整个灰色条都可单击以到达某个地方,但是如果用户单击滚轮或移动箭头,则它们是其他链接。查看我当前的代码: 这是一个好习惯吗?我做错了吗?你会怎么做?谢谢您的帮助! 问题答案: 直接来自W3C for HTML4: 12.2.2嵌套链接是非法的由A元素定义的链接和锚点不得嵌套;A元素不得包含任何其他A元素。 由于DTD将LINK元素定义
问题内容: 有谁知道Python中是否存在用于无限嵌套字典的标准类? 我发现自己在重复这种模式: 如果要添加“另一个层”(例如),则必须定义defaultdicts的另一个嵌套。 为了概括这种模式,我编写了一个简单的类,该类将重写以自动创建下一个嵌套字典。 例如 但是,有人知道这种想法的先前存在吗?我已经尝试了谷歌搜索,但是我不确定这叫什么。 问题答案: 您可以从中获得所需的行为: 该类的用法如下
问题内容: 在我经历1000 s 之后,可能不需要 是否有 任何情况下, 该下降从将使在差异 封装 (或 使用 例如,通过外)?还考虑思考 如果 不 建议将其删除或使其与编码风格保持一致? 我说 没有 和 下降 ,但不知道真的。 编辑: 刚意识到 我 的方式肯定是错误的-至少对于的 字段 -声明这些字段为私有字段,然后在外部类中使用它们- 因为这会在字节码中生成( “ synthetic” )访问