请稍等 ...
×

采纳答案成功!

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

promise运行

老师,今天面试有一道代码题没有做对,就是promise的链式使用,看输出什么,但是里面有个return的部分,我不大明白,课程里也没有,麻烦您帮我看看,讲解一下,谢谢

new Promise((resolve, reject) => {
  console.log(1);
  setTimeout(() => {
    console.log(2);
  });
  resolve();
}).then(() => {
  console.log(3);
}).then(() => {
  return new Promise((resolve, reject) => {
    console.log(4);
  }).then(() => {
    console.log(5);
  });
}).then(() => {
  console.log(6);
});
console.log(7);


正在回答 回答被采纳积分+3

1回答

双越 2020-09-08 23:22:03

你具体哪里明白,哪里糊涂,可以在代码中注释标注一下。

你肯定不是一点都不会,所以先把你的问题暴露出来,然后我“对症下药”。

0 回复 有任何疑惑可以回复我~
  • 提问者 慕函数9246930 #1
    .then(() => {
      return new Promise((resolve, reject) => {
        console.log(4);
      }).then(() => {
        console.log(5);
      });
    }).then(() => {
      console.log(6);
    });
    console.log(7);
    就是从这个then里的return开始,就不明白了,而且面试官说这里也不会触发后续的then
    回复 有任何疑惑可以回复我~ 2020-09-08 23:35:21
  • 提问者 慕函数9246930 #2
    不加return 我明白,加了个return,就不回了
    回复 有任何疑惑可以回复我~ 2020-09-08 23:36:30
  • 双越 回复 提问者 慕函数9246930 #3
    面试官说这里也不会触发后续的then —— 那是因为 Promise 中没有执行 resolve() ,所有不会触发后续的 then 。即,不执行 resolve() ,那你 return 的就一直是一个 pending 状态的 promise 对象。
    
    这样解释理解了吧?
    回复 有任何疑惑可以回复我~ 2020-09-09 08:29:33
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信