问题:
在异步编程中,转换是有益的回调到承诺中。但是,像 setTimeout 这样的非基于 Promise 的函数默认情况下不会立即返回 Promise。本文探讨了如何创建可在 setTimeout 等函数的上下文中使用的 Promise。
初步想法:
提供的示例定义了一个 setTimeout 函数回调。要创建 Promise,需要将 setTimeout 回调包装在 Promise 构造函数的执行函数中。
修订的解决方案:
使用现代 JavaScript 和 Promises,以下代码演示如何从 setTimeout 创建 Promise:
function later(delay) { return new Promise(resolve => setTimeout(resolve, delay)); }
这个后面的函数需要延迟并且返回一个在指定延迟后解决的承诺。然后,您可以在异步代码中使用返回的 Promise。
高级注意事项:
对于更高级的场景,请考虑后面函数的以下变体:
结论:
从回调创建 Promise像 setTimeout 一样,可以更轻松地将异步操作集成到代码库中。通过了解如何实现此技术,您可以提高异步 JavaScript 应用程序的可读性和可维护性。
以上是如何将 setTimeout 回调转换为 Promise?的详细内容。更多信息请关注PHP中文网其他相关文章!