请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

请讲师解答一下疑惑:讲解promise标准的时候,似乎前后有些矛盾,对then返回的必须是一个promise实例存疑

//讲解视频时间在10:00处
//then返回的必须是一个promise实例?
//情况1:如果没有显示的返回promise,第二个then接收的参数是undefined,而不是和第一个then一样可以获取img
//此时第二个then跟result没有什么关系,而不是视频讲中所讲没有指名返回哪个promises实例,他就返回本身的promise实例
result.then(function (img) {
console.log(1, img.width)
}, function () {
console.log('error 1')
}).then(function (img) {
console.log(2, img) // img是undefined,而不是img,跟result没有关系
})
//如果不通过链式调用,就可以生效
result.then(function (img) {
console.log(1, img.width)
}, function () {
console.log('error 1')
})
result.then(function (img) {
console.log(2, img.height) // 可以获取img
})
//情况二:then返回的可以不是一个promise实例
result.then(function (img) {
console.log(1, img.width)
 return img // 必须返回,否则第二个then接收不到
}, function () {
console.log('error 1')
}).then(function (img) {
console.log(2, img) // 此时可以接收到第一个then返回的img,而不是promise
})

请问讲师以上怎么理解,尤其是then返回的必须是一个promise,而明明有时候并不是,例如返回的img



正在回答

1回答

第一,then 返回一个 promise 和 then 内部的函数返回 img 并不矛盾,then 的返回和 then 内部函数的返回,要分开。

第二,视频中有一个错误,如你所提到,我早就在本节视频中写了一个问题说明了 https://coding.imooc.com/learn/questiondetail/46166.html 


再有问题可继续回复哈。感觉教程有帮助,欢迎给一个好评。

1 回复 有任何疑惑可以回复我~
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信