javascript – 如何构造嵌套的Promises
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了javascript – 如何构造嵌套的Promises,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1285字,纯文字阅读大概需要2分钟。
内容图文
![javascript – 如何构造嵌套的Promises](/upload/InfoBanner/zyjiaocheng/712/f77c52c0a244459eb701da4ec641f258.jpg)
我有一种情况,我认为对我来说唯一的选择是将一些Promise嵌套在彼此中.我有一个需要执行的Promise和一个在Promise完成之前执行某些操作的方法.像这样的东西:
let promise = new Promise((resolve, reject) => {
// Do some stuff
});
doSomethingUntilPromiseisDone(promise);
但是,在我的Promise中,我需要执行另一个返回另一个Promise的方法:
let promise = new Promise((resolve, reject) => {
fetchValue(url)
.then((value) => {
// Do something here
}).catch((err) => {
console.error(err);
});
});
doSomethingUntilPromiseisDone(promise);
但是现在,在fetchValue方法的then语句中,我有另一个我需要执行的方法,猜猜是什么,返回另一个Promise:
let promise = new Promise((resolve, reject) => {
fetchValue(url)
.then((value) => {
saveToCache(value)
.then((success) => {
console.log('success!!');
resolve('success');
});
}).catch((err) => {
console.error(err);
});
});
doSomethingUntilPromiseisDone(promise);
所以最后,我在承诺中承诺,承诺.有什么方法我可以更好地构建它,以便它更直接吗?似乎将它们嵌套在彼此之内与Promise的预期链接方法相反.
解决方法:
使用.then()
let doStuff = (resolve, reject) => {/* resolve() or reject() */};
let promise = new Promise(doStuff);
doSomethingUntilPromiseisDone(
promise
.then(value => fetchValue(url))
.then(value => value.blob())
.then(saveToCache)
)
.then(success => console.log("success!!"))
.catch(err => console.error(err))
内容总结
以上是互联网集市为您收集整理的javascript – 如何构造嵌套的Promises全部内容,希望文章能够帮你解决javascript – 如何构造嵌套的Promises所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。