gpt4 book ai didi

swift - PromiseKit firSTLyOn 样式方法

转载 作者:行者123 更新时间:2023-11-28 08:01:41 38 4
gpt4 key购买 nike

PromiseKit 提供了一个方便的方法 thenOn 用于在非主线程上运行你的部分链。然而,似乎没有任何方便的方法来设置第一个 promise 执行线程。

这意味着我最终要么在我的第一个 promise 中放置一个 DispatchQueue.global(x).async,要么我使用一个虚拟的第一个 promise 。

在我的第一个 promise 中放置 DispatchQueue 位感觉很糟糕,我将线程决策从主执行链转移到单个 promise,但只是为了那个 promise。如果我稍后在我的链中添加一个 promise ,我必须移动所有线程逻辑……这不好。

我最近一直在做的是:

    let queue = DispatchQueue.global(qos: .userInitiated)

Promise(value: ()).then(on: queue) {

// Now run first promise function

}

这绝对是一个更干净的解决方案,但我想知道是否有人知道 更好的解决方案...我敢肯定这毕竟不是一种罕见的情况?

最佳答案

我们提供:

DispatchQueue.global().promise {
//…
}

firSTLy 不使用队列,因为它会在默认情况下立即执行其内容,因此允许它具有已配置的队列会使它的行为变得容易混淆。

更新:最新版本看起来像

DispatchQueue.global().async(.promise) {  
//...
}

关于swift - PromiseKit firSTLyOn 样式方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46490921/

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