SOURCE

class AwesomeService extends StoryService {
  // Story服务入口,路由了整个产品的场景
  registerScene({ name: 'sceneA', sceneModelA, convertorA });
  registerScene({ name: 'sceneB', sceneModelB, convertorB });
}

// FaaS函数的逻辑实现
// 入参:调用的事件信息和场景的上下文
// 出参:基于Nexus通信协议的对象,可以被端侧的Engine解析
function submit(event: SceneEvent, ctx: SceneContext): NexusAction {
  // 第一步:请求数据服务,得到数据结构
  const data: SceneData = new SceneData(event, ctx);
  // 第二步:通过convertor把数据模型转变成UI State
  const state: SceneState = convertor(data);
  // 最后一步:把UI State包装成Nexus通信对象返回给端侧
  return new NexusAction(state, event, ctx);
}

// 实现convertor的逻辑
// 入参是数据服务经过编排后的data
// 出参是映射到页面的State结构
function convertor(data: SceneData): SceneState {
  // 服务编排和业务逻辑
}




Future<StateModel> submit(SceneEvent event, SceneContext<StateModel> ctx) async {
  // 通过传入的event获取参数
  String param1 = event.payloadValue('param1');
  String param2 = event.payloadValue('param2');
  // 请求服务数据
  HsfResult<String> resultA = await hsfRequest(ctx, 'hsfServerA', params);
  
}
console 命令行工具 X clear

                    
>
console