一个工作流程中的各个步骤的错误处理该怎么做?兼顾将其中一个步骤拿出来单独使用。
我现在要展示一个表格,步骤大致如下。
- 请求表头信息 (调用getFields()函数,返回一个
promise
。) 得到数据之后设置表头
(上面两步可以按照下面的代码表示)function step1() { return getFields().then((data) => { ... setFields.. }).catch((error) => { .... }) }
- 请求表中的数据(调用getTableData()函数,返回一个
promise
) 得到数据之后结合之前获取的字段信息设置表格中的数据
(上面两步可以按照下面的代码表示)function step2() { return getTableData().then((data) => { ... setTableData.. }).catch((error) => { .... }) }
那么这两步怎么关联起来呢?
async function process() { await step1(); await step2(); }
在这两步中的catch操作中我们还需要再throw new Error(...)
将错误抛出吗?
如果不抛出来的话,如果step1中发生了错误,那么在process中怎么知道呢?
所以应该在catch中抛出,在process中添加try catch,并将错误处理统一到Process中?
async function process() {
try {
await step1();
await step2();
}catch {
错误统一处理(将step1, step2中的一部分错误处理逻辑拿到这里来)
}
}
现在表头信息有了,之后我们可能需要调用step2()来进行特定的查询来更新表单数据就可以了。
function query() {
try {
step2();
}catch {
....
}
}
如果我们不在step2中的catch中throw new Error
的话,也就不需要写这里的try catch..了。
到底该怎么做呢?