【发布时间】:2022-01-19 06:58:00
【问题描述】:
在 JS 中,我可以将 promise 返回函数创建为,
function asyncFn() {
return new Promise((resolve) => {
// Resolve after some tasks are completed
resolve(true)
})
}
以后我可以做,
async function sign() {
await asyncFn()
console.log("asyncFn() completed")
}
或以迅捷的方式,
func sign() async {
let _ = await asyncFn()
print("asyncFn() completed")
}
这只是一个例子。基本上我希望完成一些任务,然后解决承诺/未来。
我如何对 Swift 做同样的事情? Swift 5.5 支持 async/await 那么有没有办法创建自己的自定义 async 或 promise 返回函数?
【问题讨论】:
-
我不明白;超时是否代表失败案例?如果是这样,那么您需要选择一个适当的值来给任务时间来完成,然后它被认为是失败的。
-
@Paulw11 不,计时器没有失败案例。计时器只是一个例子。我只想在未知时间后解析的函数中返回 Promise/Future。
-
所以只需使用 Swift 5.5 中新的 Async/await 即可。标记为
async的函数实际上会返回一个promise,但由于它是一流的语言功能,因此您无需将结果显式包装在promise 中。 -
我建议观看各种 async/await WWDC 视频(例如,Meet async/await)。
-
我怀疑您的问题的某些方面我们一定不能理解。如果是这种情况,也许您可以编辑您的问题以澄清。在您的问题中,您包含了 Swift async/await 示例,然后问“您如何在 Swift 中做同样的事情?”你刚刚在 Swift 中完成了,上面几行......