【发布时间】:2023-02-16 09:23:22
【问题描述】:
Promise 在 Javascript 中
如 MDN 文档中所示:
Promise.resolve() 方法将给定值“解析”为 Promise。如果该值是一个承诺,则返回该承诺;如果该值是一个 thenable,Promise.resolve() 将使用它准备的两个回调调用 then() 方法;否则返回的 promise 将以该值实现。
当您需要处理类型为
T或Promise<T>的值时,它很有用,您始终可以选择const promiseValue = Promise.resolve(value)并将其视为之后的承诺。例子:我想要什么
假设有一个值:
Union[T, Future[T]],我想将它转换为Future类型。在 JavaScript 中我只能value = Promise.resolve(value),但我不知道在 Python 中推荐的方法是什么。问题
虽然我总是可以选择自己构建一个,但我只是想知道 Python 是否有内置方法来为
Future做同样的事情?在 Python 中没有
Promise.resolve的情况下处理这种情况的建议方法是什么?
【问题讨论】:
-
有趣的问题。我将您的评论添加到问题中。您的研究是什么 - 您是否偶然发现 javascript - Differences between Futures in Python3 and Promises in ES6 有帮助?
-
我认为 python 使用不同的哲学来处理 Future。我认为
Future的add_done_callback等同于Promise.thenin ,但结果只是一个监听器模式,这使得 future 不可链接。因此这个问题变得毫无用处,除非 Python 有Promise.then机制。
标签: python asynchronous concurrent.futures