我有一系列异步方法定义如下:funcstep1(input:Step1InputData,completion:(Step1OutputData->Void)){/*dosomething*/}funcstep2(input:Step1OutputData,completion:(Step2OutputData->Void)){/*dosomething*/}//etc...如您所见,step1的输出是step2的输入。这些类型都实现了StepData协议(protocol):protocolStepData{}classStep1InputData:StepData{}classSt