首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >承诺-嵌套函数不起作用

承诺-嵌套函数不起作用
EN

Stack Overflow用户
提问于 2019-01-29 00:46:32
回答 2查看 72关注 0票数 3

我想知道为什么下面的代码不能工作,毕竟它只是嵌套函数:

代码语言:javascript
复制
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))

任何暗示都会很好,谢谢

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-01-29 01:13:12

您需要调用嵌套函数。

代码语言:javascript
复制
var calculus = new Promise((resolve, reject) => ((resolve) => resolve(3))(resolve))

calculus.then((result) => console.log(result))

如果不想在最后重复(resolve),可以去掉嵌套函数的参数。

代码语言:javascript
复制
var calculus = new Promise((resolve, reject) => (() => resolve(3))())

calculus.then((result) => console.log(result))

在任何一种情况下,嵌套函数都没有多大意义,您只需编写:

代码语言:javascript
复制
var calculus = new Promise((resolve, reject) => resolve(3))

calculus.then((result) => console.log(result))

票数 5
EN

Stack Overflow用户

发布于 2019-01-29 01:26:18

注:巴玛尔回答得更快,读到了,我想我误解了你的要求。但是,我仍然会发布这篇文章,因为它可能有助于确切地阐明您的示例中发生了什么。

你的第一行,

代码语言:javascript
复制
var calculus = new Promise((resolve, reject) => (resolve) => resolve(3))

返回类似于这样的对象的内容(尽管在幕后是完全不同的):

代码语言:javascript
复制
{
  then: function(callback) {
    callback(function (resolve) {
      resolve(3);
    });
  }
}

因此,要使用这个,您可能需要这样做:

代码语言:javascript
复制
calculus.then((resolver) => {
  resolver(function (value) {
    console.log(value); // 3
  });
});

我想你可能想做的是:

代码语言:javascript
复制
const calculus = new Promise((resolve, reject) => resolve(3));
calculus.then((result) => console.log(result))

请记住,() => {}function() {}相似(尽管不是完全相同),() => something类似于function () { return something }

原来的代码是这样的

代码语言:javascript
复制
var calculus = new Promise(function (resolve, reject) {
  return function (resolve) {
    resolve(3)
  };
});

当你想

代码语言:javascript
复制
var calculus = new Promise(function (resolve, reject) {
  resolve(3);
});
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54412362

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档