需求:就是批量请求某个接口(是不是很坑0.0),然后遇到错误就中断
关键点:数组,异步,中断
ok,上代码
if (selectedRowKeys && selectedRowKeys.length > 0) {
const goQian = (k) => {
let u = selectedRowKeys[k]
let api = u.blockchain === 'ETH' ? getEthDetail : getBtcDetail;
fetch(api({id: u.id})).then((data) => {
const arg = ipcRenderer.sendSync('sign-tx', data)
if (arg && arg.data && arg.data !== '{}' && !arg.errorMsg) {
const onAutograph = (rawTx, id, blockchain) => {
let api = blockchain === 'ETHEREUM' ? ethAutograph : btcAutograph;
fetch(api({id, rawTx})).then(() => {
if (selectedRowKeys.length > k + 1) {
goQian(k + 1)
} else {
message.success('签名成功')
onPageChange(1)
}
})
}
onAutograph(arg.data, data.id, data.blockchain)
} else {
message.error(arg.errorMsg);
}
})
}
goQian(0)
}
循环调用一个方法,参数为数组的下标,遇到错误的时候不继续调用就可以了。