在 Promise() 构造函数中使用 async/await:反模式?
在这种情况下,您正在使用 async .eachLimit 函数用于管理并发操作。但是,在 Promise 构造函数中使用 async/await 会引起问题。
Promise 构造函数反模式
在 Promise 构造函数的执行函数中使用 Promise,就像您一样正在做的事情,被认为是一种反模式。正如代码中所示,主要风险是可能会出现未经检查的错误。
此外,async/await 引入了额外的复杂性,可能会掩盖这些问题。例如,在您的代码中:
let p = new Promise(resolve => { ""(); // TypeError resolve(); }); (async () => { await p; })().catch(e => console.log("Caught: " + e)); // Catches it.
这里,TypeError 在 Promise 构造函数中不会被注意到,但在使用 async/await 时会被捕获。这种意外可能会带来问题。
因此,虽然您的代码允许您访问嵌套回调中的值,但必须小心处理错误并避免这些反模式,以确保代码健壮且可维护。
以上是在 Promise 构造函数中使用 async/await 是反模式吗?的详细内容。更多信息请关注PHP中文网其他相关文章!