ES2015承诺 - 我错过了什么?

Ben*_*Ben 1 javascript ecmascript-6

我期待以下打印1 2 3.但它打印1 undefined 3.我错过了什么?

var p = Promise.resolve('2');

new Promise(resolve => { console.log('1'); resolve(); })
  .then(p)
  .then((result) => console.log(result, '3'));
Run Code Online (Sandbox Code Playgroud)

elr*_*eda 6

您需要将p变量包装在匿名函数中

var p = Promise.resolve('2');

new Promise(resolve => { console.log('1'); resolve(); })
  .then(() => p)
  .then((result) => console.log(result, '3'));
Run Code Online (Sandbox Code Playgroud)