PromiseKit `Result.. is unused warning` 在带有 for 循环的链式序列中

PromiseKit `Result.. is unused warning` in a chained sequence with a for loop

我有这个恼人的警告,我无法摆脱它。
假设我有一个向蓝牙文件设备发送命令的承诺,要执行一个过程,我需要同步发送这些命令。
因此,您在 PromiseKit 6 中可以做的是创建一个 for 循环,并使用 then 将每个命令附加到先前的承诺。该方法的问题是编译器会触发有关 Result of call to 'then(on:flags:_:)' is unused 的警告,就像缺少 catch 一样。我知道我可以使用 cauterize() ,但在这种情况下,我想我会丢失在执行每个承诺时抛出的错误。 when 不可行,因为它会在我需要同步时同时执行。
这是一个与字符串一起使用的小示例,在我的实际应用中它们不是字符串。

 static func promise_startProcedure(with commands: [String]) -> Promise<Void> {
        let promise = Promise()
        for command in commands {
            promise.then { //<-- WARNING SHOW HERE
                Promise.value(command)
            }
        }
        return promise
    }

有没有办法摆脱这个警告?
[更新]
我做错了,答案不正确,但给我指出了正确的方向。

static func promise_startProcedure(with commands: [String]) -> Promise<Void> {
            var promise = Promise()
            for command in commands {
                promise = promise.then { 
                    Promise.value(command)
                }
            }
            return promise
        }

您可以在方法声明中添加@discardableResultFrom the docs:

For example, the discardableResult attribute on a function declaration indicates that, although the function returns a value, the compiler shouldn’t generate a warning if the return value is unused.

试试这个。我刚刚添加了 Underscore 来抑制警告,但没有收到该警告。

static func promise_startProcedure(with commands: [String]) -> Promise<Void> {
    let promise = Promise()
    for command in commands {
        _ = promise.then {
            Promise.value(command)
        }
    }
    return promise
}