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 星