Javascript 在Promise.resolve中是否使用值为Table对象的解构?

Javascript 在Promise.resolve中是否使用值为Table对象的解构?,javascript,promise,destructuring,Javascript,Promise,Destructuring,以下代码使用分解结构: 以下承诺是否也有同样的作用 也就是说,pr是一个相等的承诺对象,其方法更改为: function(resolve){ resolve(20); } 最后,pr.thenfunctionv{…}生成结果。如果不使用解构,那么为什么在Promise.resolve中有passed-then属性呢 下面的代码使用解构 不,没有。破坏结构将是 const { fun1 } = obj; fun1(); 您只是在重写一个属性 以下承诺是否也有同样的作用 不,没有。res

以下代码使用分解结构:

以下承诺是否也有同样的作用

也就是说,pr是一个相等的承诺对象,其方法更改为:

function(resolve){
  resolve(20);
}
最后,pr.thenfunctionv{…}生成结果。如果不使用解构,那么为什么在Promise.resolve中有passed-then属性呢

下面的代码使用解构

不,没有。破坏结构将是

 const { fun1 } = obj;
 fun1();
您只是在重写一个属性

以下承诺是否也有同样的作用

不,没有。resolve是promise构造函数的一个内部函数,该构造函数随后调用传递给thens的所有函数。根本没有重写的属性

为什么Promise.resolve中有传递属性

我不知道,这毫无意义。如果您这样做:

 const pr = Promise.resolve(42);
 pr.then(console.log) // 42
如果传入对象,它将解析为该对象:

 const pr = Promise.resolve({ some: "thing" });
 pr.then(console.log); // { some: thing }

如果该对象有一个then方法,那么它被称为thenable对象,并且该承诺将遵循该函数,前提是该函数具有functiononFulfill、onReject签名。这是您的最后一个示例。

您可以更改您的问题标题吗?真的不清楚这是什么意思。我不明白有人用过解构。这里没有解构。你只是把一个可启用的对象文本传递给Promise。resolve这是一个有文档记录的用例。很难知道你在问什么。不,显然情况并非如此:你的第一个代码段日志替换为正常工作,而你的第二个代码段异步记录20。为什么不等待问题的澄清,或者干脆投票关闭?@zero298以阻止其他人回答。我已经投票结束了。这并不妨碍任何人回答。投票关闭会阻止人们回答。@zero298不太可能。要花很长时间才能投下5票。我还试图帮助OP,这在格式等方面更容易回答。@JonasW。如果它有一个指向函数的属性,那么它就很重要。
 const pr = Promise.resolve(42);
 pr.then(console.log) // 42
 const pr = Promise.resolve({ some: "thing" });
 pr.then(console.log); // { some: thing }