如果 Ballerina 发生错误,是否应该在等待之前取消异步函数调用?

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

关于异步函数调用 https://ballerina.io/learn/by-example/asynchronous-function-calls/

如果 future 声明和 wait 之间的代码抛出错误或返回,我们是否应该调用 future.cancel() ? 示例:

future<int> fut = start foo();
// Code fails or returns here
 int|error x = wait fut; 
asynchronous async-await wait ballerina ballerina-swan-lake
1个回答
0
投票

我想说这取决于逻辑(例如,链是否产生,是否从主函数调用,等等)。请注意,future:cancel 请求取消(而不是立即终止链)。

This sets the cancellation flag in the strand corresponding to f. Each time that a strand yields, it will check the cancellation flag and terminate abnormally if the flag is set.

https://lib.ballerina.io/ballerina/lang.future/0.0.0#cancel

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