Javascript 如果第一次回调没有返回承诺,那么是否可以调用?

Javascript 如果第一次回调没有返回承诺,那么是否可以调用?,javascript,typescript,ecmascript-6,es6-promise,Javascript,Typescript,Ecmascript 6,Es6 Promise,我正在浏览,代码如下所示: Promise.resolve(123) .then((res) => { console.log(res); // 123 return 456; }) .then((res) => { console.log(res); // 456 return Promise.resolve(123); // Notice that we are returning a Pr

我正在浏览,代码如下所示:

Promise.resolve(123)
    .then((res) => {
        console.log(res); // 123
        return 456;
    })
    .then((res) => {
        console.log(res); // 456
        return Promise.resolve(123); // Notice that we are returning a 
Promise
    }) 
第一次回调不返回承诺,但其他回调返回承诺。在语句
之后是否可以调用
then
。然后((res)=>{console.log(res);return 456;})
完成?

如前所述

then方法返回允许方法链接的承诺。

您可以将lambda传递给,如果它返回承诺,则 同等承诺将在随后的 方法链。下面的代码段使用 设置超时功能

当一个值只是从一个lambda中返回时,它将有效地返回
Promise.resolve()

示例

var p2 = new Promise(function(resolve, reject) {
  resolve(1);
});

p2.then(function(value) {
  console.log(value); // 1
  return value + 1;
}).then(function(value) {
  console.log(value + '- This synchronous usage is virtually pointless'); // 2- This synchronous usage is virtually pointless
});

p2.then(function(value) {
  console.log(value); // 1
});
阅读有关

的更多信息。然后
始终返回承诺-如果需要,您在回调中返回的内容将是“promisified”