gpt4 book ai didi

以编程方式快速访问闭包成员

转载 作者:行者123 更新时间:2023-11-30 10:55:11 27 4
gpt4 key购买 nike

我正在构建一个 Swift 应用程序并使用 PromiseKit 来使异步功能更具可读性。

来自PromiseKit docs ,我可以看到它支持多个并发的 Promise。我编写了一些代码如下,在 for 循环中生成 Promise,然后等待它们全部实现。

for index in 0...100 {
let urlString = "https://someurl.com/item/\(index)"
guard let url = URL(string: urlString) else { return }
requestPromises += [URLSession.shared.dataTask(.promise, with: url).validate()]
}

firstly {
when(fulfilled: requestPromises)
}.done {
// process results
}

文档中的示例显示将 promise 写为:

firstly {
when(fulfilled: operation1(), operation2())
}.done { result1, result2 in
//…
}

我的问题是我不想写出 result1, result2, ... result100。有没有办法以编程方式访问结果?

最佳答案

我能够通过以下方式解决这个问题(感谢@MadProgrammer):

for index in 0...100 {
let urlString = "https://someurl.com/item/\(index)"
guard let url = URL(string: urlString) else { return }
requestPromises += [URLSession.shared.dataTask(.promise, with: url).validate()]
}

firstly {
when(fulfilled: requestPromises)
}.done { results in
// process results
}

关于以编程方式快速访问闭包成员,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54048040/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com