关于异步函数调用 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;
我想说这取决于逻辑(例如,链是否产生,是否从主函数调用,等等)。请注意,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.