我想知道为什么下面的代码不能工作,毕竟它只是嵌套函数:
var calculus = new Promise((resolve, reject) => (resolve) => resolve(3))
var calculus2 = new Promise((resolve, reject) => {
() => resolve(4)
})
calculus.then((result) => console.log(result))
calculus2.then((result) => console.log(result))
任何暗示都会很好,谢谢
发布于 2019-01-29 01:13:12
您需要调用嵌套函数。
var calculus = new Promise((resolve, reject) => ((resolve) => resolve(3))(resolve))
calculus.then((result) => console.log(result))
如果不想在最后重复(resolve),可以去掉嵌套函数的参数。
var calculus = new Promise((resolve, reject) => (() => resolve(3))())
calculus.then((result) => console.log(result))
在任何一种情况下,嵌套函数都没有多大意义,您只需编写:
var calculus = new Promise((resolve, reject) => resolve(3))
calculus.then((result) => console.log(result))
发布于 2019-01-29 01:26:18
注:巴玛尔回答得更快,读到了,我想我误解了你的要求。但是,我仍然会发布这篇文章,因为它可能有助于确切地阐明您的示例中发生了什么。
你的第一行,
var calculus = new Promise((resolve, reject) => (resolve) => resolve(3))返回类似于这样的对象的内容(尽管在幕后是完全不同的):
{
then: function(callback) {
callback(function (resolve) {
resolve(3);
});
}
}因此,要使用这个,您可能需要这样做:
calculus.then((resolver) => {
resolver(function (value) {
console.log(value); // 3
});
});我想你可能想做的是:
const calculus = new Promise((resolve, reject) => resolve(3));
calculus.then((result) => console.log(result))请记住,() => {}与function() {}相似(尽管不是完全相同),() => something类似于function () { return something }
原来的代码是这样的
var calculus = new Promise(function (resolve, reject) {
return function (resolve) {
resolve(3)
};
});当你想
var calculus = new Promise(function (resolve, reject) {
resolve(3);
});https://stackoverflow.com/questions/54412362
复制相似问题