这里为什么不能这样替换?
}).then(data => {
return new Promise(resolve => {
console.log(data)
setTimeout(() => {
resolve(data);
}, 2000);
})
})
这一步为什么不能替换成
then(data => {
setTimeout(() => {
return data
}, 1000);
})
正在回答 回答被采纳积分+1
同学你好,如果写成第二个方式,那么then就没有设置返回值,返回值即undefined。如下:
第一个是给then设置了返回值,返回值是一个promise对象
第二个虽然设置了返回值,但是它是定时器的返回值。then没有设置自己的返回值,所以返回值即undefined。它会把undefined转换为一个promise,相当于promise.resolve(undefined),那么传递的数据就是undefined,所以不对哦。
你可以把定时器去掉,这样给then设置了返回值,转换为promise.resolve(res)就对了。
之所以老师那样写,是因为想要有一个加载的过程,让数据1s之后再返回,所以就返回了一个Promise对象哦。
如果我的回答帮助到了你,欢迎采纳,祝学习愉快~
- 参与学习 人
- 提交作业 239 份
- 解答问题 10739 个
本阶段带你深入前端开发的肌理,通过ES6基础知识和前端主流高级框架的学习,助你快速构建企业级移动webAPP应用,进入职场的终极battle
了解课程
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星