是否可以使用一个await关键字解决一组顺序的诺言

问题描述 投票:1回答:2

也许这是语言的局限性,但是我试图弄清楚如何使用单个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关键字进行一系列的顺序承诺解析。我正在尝试实现...

javascript async-await es6-promise
2个回答
1
投票

.then()的结果使用.get(1),然后提取workoutExercises。一个内衬非常可读。

示例:


0
投票

是否可以使用一个await关键字解决一组顺序的诺言

© www.soinside.com 2019 - 2024. All rights reserved.