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
}
您可以在方法声明中添加@discardableResult
。 From 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
}
我有这个恼人的警告,我无法摆脱它。
假设我有一个向蓝牙文件设备发送命令的承诺,要执行一个过程,我需要同步发送这些命令。
因此,您在 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
}
您可以在方法声明中添加@discardableResult
。 From 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
}