house-middleware-sdk
Version:
58 hosue rn native sdk
61 lines (54 loc) • 2.12 kB
JavaScript
import { buildMixRequest, buildRequestGet } from './MixRequest';
const reqA = buildRequestGet('A-URL', {})
.then((res) => {
console.log(`业务层收到反馈${res}`);
})
.catch((e) => {
console.log(`业务层捕捉到异常${e}`);
});
const reqB = buildRequestGet('B-URL', {})
.then((res) => {
console.log(`业务层收到反馈${res}`);
})
.catch((e) => {
console.log(`业务层捕捉到异常${e}`);
});
// 如果中间过程中有调整代码执行顺序的语句存在切调用者希望此延时操作被后续流程等待可以传入两个参数,next表示完成业务后可以继续执行任务
const reqC = buildRequestGet('C-URL', {})
.then((res, next) => {
console.log(`业务层收到反馈${res}`);
setTimeout(() => {
console.log('延迟执行举例');
next();
}, 1000);
})
.catch((e) => {
console.log(`业务层捕捉到异常${e}`);
});
const reqD = buildRequestGet('D-URL', {})
.then((res) => {
console.log(`业务层收到反馈${res}`);
})
.catch((e) => {
console.log(`业务层捕捉到异常${e}`);
});
// const reqE = null;
export default function requestMixData() {
// 注意是否有循环依赖
buildMixRequest()
// .configRequestRelationship(reqA, reqB, reqC.reqDep(reqA, reqB), reqD.reqDep(reqB))
// .configHandleRelationship(reqA, reqB.handleAfter(reqA), reqC.handleDep(reqB), reqD.handleDep(reqB, reqC))
// .configRequestRelationship(reqA, reqB, reqC, reqD)
// .configHandleRelationship(reqA, reqB.handleDep(reqA), reqC.handleDep(reqB), reqD.handleDep(reqC))
.configRequestRelationship(reqA, reqB, reqC, reqD)
.configHandleRelationship(reqA, reqB.handleAfter(reqA), reqC.handleAfter(reqB), reqD.handleAfter(reqC))
// .configRequestRelationship(reqA, reqB.reqDep(reqA), reqC, reqD)
// .configHandleRelationship(reqA, reqB.handleAfter(reqA), reqC.handleAfter(reqB), reqD.handleAfter(reqC))
.do()
.onAllFinish(() => {
console.log('请求全部回调完成');
})
.onError(() => {
console.log('出现异常,注意依赖是否可达');
});
}