※ 引述《SecondRun (南爹抠打)》之铭言:
: 我们专案传protocol的方式是
: Xprotocol.RegisterOnReceive(() => action);
: Xprotocol.Send();
: 这样的感觉
: 不过如果会依赖上一个protocol 连续几个protocol就会变成这样
: Xprotocol.RegisterOnReceive(() =>
: {
: Yprotocol.RegisterOnReceive(() =>
: {
: Zprotocol.RegisterOnReceive(() => action);
: Zprotocol.Send();
: });
: Yprotocol.Send();
: });
: Xprotocol.Send();
: 在用的时候已经有点感受到波动拳的力量了
: 除此以外还很难读==
: 有没有除了async以外的解法啊
function prepareProtocols(protocols, callback) {
function deque() {
if (protocols.length) {
const p = protocols.shift();
p.RegisterOnReceive(deque);
p.Send();
} else {
callback();
}
}
deque();
}
prepareProtocols([Xprotocol, Yprotocol, Zprotocol], () => action)