Promise的resolve/reject函数的返回值

7
考虑一下这种情况。
new Promise(function(resolve, reject) {
    var x = resolve(2);
});

x的值是什么?我试图打印它,但显示为undefined。这很直观,但它总是这样吗?文档中有吗?

第二个问题

new Promise(function(resolve, reject) {
    resolve(2);
    return 5;
});

我们将一个函数放入Promise中,那么我们应该从这个函数中返回什么呢?这个值会被忽略吗?
1个回答

7

Promise构造函数的返回值被忽略

resolve函数也返回undefined

这一点最初在Promise构造函数规范中指定,后来在ES2015(ES6)语言规范中得到确认。


@MichałKownacki 我已经添加了引用,即在http://www.ecma-international.org/ecma-262/6.0/index.html#sec-promise-executor中查看注释。 - Benjamin Gruenbaum
是的,但我正在使用带有Bluebird的node.js,它使用Promises/A+标准。 - Michał Kownacki
@MichałKownacki 不仅蓝鸟行为如此,在3.0中我们也对此发出了警告:http://imgur.com/a/t3xng - Benjamin Gruenbaum

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接