【发布时间】:2019-04-29 10:17:27
【问题描述】:
我收到了这个烦人的警告,但我无法摆脱它。
假设我有一个向蓝牙文件设备发送命令的承诺,要执行一个过程,我需要同步发送这些命令。
所以你可以在 PromiseKit 6 中做的是创建一个 for 循环并使用 then 将每个命令附加到前一个 Promise 中。这种方法的问题是编译器会触发关于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
}
【问题讨论】:
-
我看不出这些承诺有什么用处。
-
@Kamran 当然,正如我所说,这只是一个小例子,这个过程与其他承诺链接在一起,最后有一个
catch
标签: ios swift promisekit