我在互联网上看到了以下两个代码,我无法理解它们是如何被解析和执行的。顺便说一下,我是ES6的新手。
return getUsername()
.then(function (username) {
return getUser(username);
})
.then(function (user) {
});
将上述代码解释为:
是否正确return getUsername().then(function(username){return getUser(username);}).then(function (user){});
或者它在ES6中有不同的含义吗?
同样如下:
new Q(value)
.then(function(/*Success handler*/){}, function(/*Failure handler*/){})
是否应解释为:
new Q(value).then(function(/*Success handler*/){},function(/*Failure handler*/){})
答案 0 :(得分:2)
您的解释'只是删除换行符和空格。 结果在功能上与更易读的多行版本相同。
答案 1 :(得分:1)
您的解释是正确的,但这种编码风格与ES6无关。它只是JS语法的一部分。
开发人员通常会将链式方法放在单独的行中,以使目标对象发生的事情更加清晰。
阅读本文关于方法链接的内容,请参阅文章的底部,了解不同行上的链式方法示例:https://schier.co/blog/2013/11/14/method-chaining-in-javascript.html