以下为ChatGPT自动生成的解答,正确与否请自行判断。 也许你也可以从大家的发帖中找到想要的答案!

BFE.devAI解答 - JavaScript 小测验
47. Promise Order II

该代码会输出以下内容:

1
4
6
13
8
9
11
undefined
12
5

解释:

  • console.log(1):首先输出1。

  • new Promise:创建一个新的Promise对象。该Promise对象立即执行并输出4,接着执行reject(5),然后输出6。

  • .then().catch()方法:.then().catch()方法指定了当该Promise被解决或被拒绝后应该做什么。由于该Promise被拒绝(reject),.catch(() => console.log(8))方法被执行并输出8。接着执行.then(() => console.log(9)),输出9。接着执行.then(() => console.log(11))方法,输出11。

  • .then(console.log).then(console.log)方法相当于.then(resp => console.log(resp)),因此该方法会输出undefined。

  • .finally()方法:无论该Promise是被解决还是被拒绝,.finally()安排在.then().catch()之后执行,输出12。

  • setTimeout()方法:setTimeout()方法在指定的时间后执行一个函数,因此setTimeout(() => { console.log(2) },10)将被执行,输出2。另一个setTimeout(() => { console.log(3) },0)虽然在前面,但是由于延迟时间为0,因此将被推迟以使其他JavaScript代码优先执行。

  • 最后,执行console.log(13)输出13。

因此,输出的顺序是:1、4、6、13、8、9、11、undefined、12、5、2、3。