老师,是这样理解吗?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 | 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; } //补充代码 cook() .then( function (data){ return eat(data); }) .then( function (data){ return wash(data); }) .then( function (data){ console.log(data); }) |
Promise在执行then方法中执行回调函数resolve,这里的resolve就是eat,eat执行成功之后的参数data(鸡蛋炒饭)传入下一个then,作为下一个then的参数传给wash,一层一层下去,这样理解对吗?
但是为什么要return (return eat(data)),函数中不是已经return p 了吗?
33
收起
正在回答
2回答
同学你好,你的理解是正确的。继续加油,祝学习愉快~
4.Vue与React高级框架开发
- 参与学习 人
- 提交作业 239 份
- 解答问题 10739 个
本阶段带你深入前端开发的肌理,通过ES6基础知识和前端主流高级框架的学习,助你快速构建企业级移动webAPP应用,进入职场的终极battle
了解课程
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧