14、Promise链式调用多个不同函数的用法
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
</head>
<body>
<script src="https://cdn.bootcss.com/jquery/1.12.4/jquery.js"></script>
<script type="text/javascript">
function cook() {
console.log('开始做饭。');
var p = new Promise(function(resolve, reject){
setTimeout(function() {
console.log('做饭完毕!');
resolve('鸡蛋炒饭');
}, 1000);
});
return p;
}
function eat(data) {
console.log('开始吃饭:' + data);
var p = new Promise(function(resolve, reject) {
setTimeout(function() {
console.log('吃饭完毕!');
resolve('一块碗和一双筷子');
}, 2000);
});
return p;
}
function wash(data) {
console.log('开始洗碗:' + data);
var p = new Promise(function(resolve, reject) {
setTimeout(function() {
console.log('洗碗完毕!');
resolve('干净的碗筷');
}, 2000);
});
return p;
}
//补充代码
// console.log(cook());
// cook()
// .then( (data) => {
// eat(data)
// .then( (data) => {
// wash(data)
// .then( (data) => {
// console.log(data);
// });
// })
// })
// 上面的写法也没问题为什么?
cook()
.then( (data) => {
return eat(data)
})
.then( (data) => {
return wash(data)
})
.then( (data) => {
console.log(data);
});
</script>
</body>
</html>1、// resolve()方法执行的意义是告诉实例化的Promise对象可以执行.then(下一步操作)了(这里指then中的匿名函数了),同时还可以在resolve()方法的括号中传递数据。
2、// return的作用是返回Promise实例对象和resolve的data数据的,Promise实例对象才有then方法,而resolve的data数据只有return后才能传递给下个方法使用。
3、注释上面的写法也没问题为什么?
看看我前面两点理解的对不对。
17
收起
正在回答
3回答
同学你好,是的哦。
希望能帮助到你,祝学习愉快!
4.Vue与React高级框架开发
- 参与学习 人
- 提交作业 239 份
- 解答问题 10739 个
本阶段带你深入前端开发的肌理,通过ES6基础知识和前端主流高级框架的学习,助你快速构建企业级移动webAPP应用,进入职场的终极battle
了解课程




恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星