问答详情
源自:3-1 then 的嵌套

为什么我的输出有100?

源代码:

console.log('start');

new Promise(resolve => {

    console.log('Step 1');

    setTimeout(() => {

        resolve(100);

    }, 1000);

}).then(value => {

    return new Promise(resolve => {

        console.log(value);

        console.log('Step 1-1');

        setTimeout(() => {

            resolve(110);

        }, 1000);

    }).then(value => {

        console.log('Step 1-2');

        return value;

    }).then(value => {

        console.log('Step 1-3');

        return value;

    });

}).then(value => {

    console.log(value);

    console.log('Step 2');

});

控制台输出:

D:\Dev\node-v12.13.0-x64\node.exe sample\nested-then.js 

start

Step 1

100

Step 1-1

Step 1-2

Step 1-3

110

Step 2


2

提问者:CoderDream 2019-12-19 09:00

个回答

  • 一pan花生
    2020-06-13 15:49:59

    人家老师代码里在1-1前也没写console.log(value)啊,弟弟,你这个100是接受的外层resolve里的参数

  • CoderDream
    2019-12-25 09:29:05


    谢谢解答。

    我的疑问是老师的控制台为什么没有输出100?

    http://img1.mukewang.com/5e02bafe0001ccb906330843.jpg

  • IYogic
    2019-12-19 20:59:51

    肯定会有100的呀,不是刚好如图的,由1传到2,2再传到3嘛
    http://img2.mukewang.com/5dfb73f20001250205980490.jpg