【发布时间】:2018-10-22 10:02:48
【问题描述】:
我想在启动我的应用程序之前使用 Promise 链加载一些数据。所以,我会有类似的东西:
fetch('path/to/data.json')
.then((response) => response.json())
.then((data) => {
console.log(`Hey cool, we're done w/ the promise chain here`);
startApp(data);
})
.catch((error) => console.error(`Error in promise chain: ${error}`));
它确实有效——但使用此设置,我的 startApp 函数(或任何后续函数)中的任何错误都会在 Promise 链中得到处理,这似乎是错误的。
我发现的 Promise 示例通常以链的最后一个 then() 中的控制台日志结尾,因此它们对此没有太大的指导意义。
- 我的设置方式真的好吗?
- 如果没有,我怎么能等到承诺链的末尾才调用
startApp函数而不仍然在链中?
【问题讨论】:
-
这很好....
-
.finally()也是一个选项 -
好的,好的,谢谢@DanielA.White
-
如果你的
startApp也是一个promise,请注意错误会丢失而不会被捕获。
标签: javascript promise