也许这是语言的局限性,但是我试图弄清楚如何使用单个await
关键字来实现一系列连续的承诺解决方案。我正在尝试实现一些易读的内容,例如:
const workoutExercises = await Workout.get(1).workoutExercises;
Workout.get
访问数据库,因此返回Promise
。 promise解析为Workout
的实例,该实例对名为get
的实例具有workoutExercises
ter方法,该实例也是解析为Promise
s数组的WorkoutExercise
。
以上代码无效,仅等待Workout.get
解析;也不必等待.workoutExercises
解决。下面的代码示例DO
1:
const workoutExercises = await (await Workout.get(1)).workoutExercises;
2:
const workout = await Workout.get(1); const workoutExercises = await workout.workoutExercises;
编辑#1更新了标题和描述,以阐明问题不是围绕Promise链的解决,而是围绕先前Promise的解决。
Workout.get --> <Promise> --> workout --> .workoutExercises --> <Promise> -> desired result
也许这是语言的局限性,但是我试图弄清楚如何使用单个await关键字进行一系列的顺序承诺解析。我正在尝试实现...
对.then()
的结果使用.get(1)
,然后提取workoutExercises
。一个内衬非常可读。
示例:
是否可以使用一个await关键字解决一组顺序的诺言