如果第一个回调没有返回Promise,那么可以调用吗?

时间:2017-04-11 04:05:45

标签: javascript typescript ecmascript-6 es6-promise

我正在浏览Chain-ability of Promises,代码如下:

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完成后可以调用.then((res) => { console.log(res);return 456;})吗?

1 个答案:

答案 0 :(得分:2)

@jaromanda-x所述,

then方法返回一个允许方法链接的Promise。

  

你可以传递一个lambda然后如果它返回一个promise,一个   相当于Promise将暴露在随后的中   方法链。下面的代码片段模拟了异步代码   setTimout函数。

当一个值简单地从当时的lambda中返回时,它将有效地返回updatedOn

示例

response.path("responseData.orderId")

详细了解MDN