【发布时间】:2020-04-21 03:05:58
【问题描述】:
此代码返回上述错误 - 为什么?
function rej(params) {
}
function res(params) {
}
let func = new Promise(function (res, rej) {
});
我做错了什么?
编辑
一些额外的信息(如 cmets 中所建议的)
我正在尝试了解 Promise 构造函数以及如何使用它。我不是在寻求解决问题的技术,我只是试图理解它。
通过将 then 链接到它来使用 Promise 很简单。我问的是关于构造函数的问题。
谢谢
【问题讨论】:
-
let func = new Promise不,func是一个 Promise,而不是一个函数 -new Promise返回一个 Promise 实例 -
@CertainPerformance 我了解。那么,在这种情况下,我对构造函数有什么用处?
-
为了帮助您修复这个结构错误的代码,我们需要了解您要解决的问题。你想让 btn 点击监听器做什么?对于我们来说,帮助您解决实际问题可能更有用,而不是试图解释为什么当您将函数以外的东西传递给侦听器时,您会收到此特定错误。此外,您对
res和rej的定义看起来也错误,因为这些函数是由promise 本身创建并传递给promise executor 回调函数的。然后你打电话,你不创建它们。你想做什么? -
@yossi - 我不知道那条评论是什么意思。我在您显示的代码中没有看到任何链接。我重复。如果您需要帮助,请告诉我们您要完成的工作。此代码远非正确,我们无法判断您要执行的操作。
-
它们不使用您在此处使用的相同语法。您创建一个承诺,在 executor 函数中不放任何东西,这样承诺永远不会被拒绝或解决,然后您将一个承诺传递给一个完全没有意义的事件侦听器。 MDN 不做任何这些事情。加上你命名的变量意味着你认为
func是一个函数。不是,是承诺。除了var btn = document.getElementById("_btn");,您显示的代码实际上没有任何正确之处。因此,在您用文字解释您要完成的工作之前,我们无法为您提供帮助。
标签: javascript promise