在 Angular 6 中,您可能遇到过不鼓励使用以下模式的想法:
await someFunction().then(result => { console.log(result); });
最初,这可能看起来令人费解,因为它本质上执行相同的任务如:
const result = await someFunction(); console.log(result);
后者通常被认为更简洁和更受欢迎,但问题出现了:为什么等待承诺链可能会出现问题?
虽然上述代码片段可能看起来相同,但存在一些细微的差异,可能会带来风险:
1.混合风格:
结合同步(await)和异步(then)方法可能会导致混乱和混淆。这可能会导致代码不一致并可能出现错误。
2.复杂的控制流:
随着代码变得更加复杂,在 then 回调中添加另一个 Promise 调用可能会引入一系列新场景。目前尚不清楚是否可以在回调中使用await,如何处理条件返回,或者是否可以从外部函数返回。这些不确定性可能会导致意外的行为和代码缺陷。
为了增强可读性、可维护性并防止错误,建议避免将 Promise 链与 wait 混合。采用一致的方法,在整个异步函数中使用 wait。
通过遵守此准则,您可以确保清晰度、最大程度地减少混乱并提高代码库的整体质量。
以上是为什么 Angular 不鼓励在 Promise 链内等待?的详细内容。更多信息请关注PHP中文网其他相关文章!