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

时间:2017-10-11 18:10:28

标签: promise perl6

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

例如,在JavaScript中我可以

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

// await returns a result2 from promise2
await promise1.then(() => promise2);

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

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

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

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

await promise1.then({ await $promise2 });

1 个答案:

答案 0 :(得分:5)

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

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