我如何一个接一个地执行两个承诺?
例如,在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 });
答案 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
。