一连串承诺的成语是什么?

Yur*_*ets 1 perl6 promise

我如何一个接一个地执行两个承诺?

例如,在JavaScript中我可以

var promise1 = new Promise();
var promise2 = new Promise();

// await returns a result2 from promise2
await promise1.then(() => promise2);
Run Code Online (Sandbox Code Playgroud)

我如何在Perl 6中做同样的事情?

my $promise1 = Promise.new();
my $promise2 = Promise.new();

// Here I get only Promise2 object, not its result
await promise1.then({ $promise2 });
Run Code Online (Sandbox Code Playgroud)

我必须等待这样的$ promise2吗?

await promise1.then({ await $promise2 });
Run Code Online (Sandbox Code Playgroud)

Jon*_*ton 5

如果你想一个接一个地做两个异步操作,把第一个的结果输入到第二个,那么它只是做两个awaits的情况:

my $result = await something-that-returns-a-Promise(); await something-else-returning-a-Promise-using($result);

或者没有中间变量:

await something-else-returning-a-Promise-using(await something-that-returns-a-Promise());

.then根本不需要.