0

ViewModel では、現在コールバックを使用して 1. API 呼び出しを行い、data1 を設定します。2. 2 番目の API 呼び出しで data1 を使用して data2 を設定し、3 番目の関数で data2 を使用して、公開された値を解析して設定します。ビューで使用されます。

これまで見てきた例は、戻り値を待つことに基づいていました。void 関数を連続して実行したいだけです。以下の概念を実装しようとしましたが、「同時実行をサポートしていない関数で非同期」になり続けています。

// ViewModel

var data1:Data?
var data2:Data?
@Published var myString:String?

func getFirstData() async -> Void {
  data1 = someAPIrequest()
}

func getSecondData() async -> Void {
  data2 = anotherAPIrequest(await data1)
}

func setViewString() {
  myString = data2!.name
}

// View

var body: some View {
  Text(await model.myString)
}.onAppear{
  getFirstData()
  getSecondData()
}
4

1 に答える 1