Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/svg/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
2019年是否有一种本地方式可以用Javascript实现不同的承诺?_Javascript_Es6 Promise_Deferred - Fatal编程技术网

2019年是否有一种本地方式可以用Javascript实现不同的承诺?

2019年是否有一种本地方式可以用Javascript实现不同的承诺?,javascript,es6-promise,deferred,Javascript,Es6 Promise,Deferred,这里的这个问题——从2014年开始——概述了履行延期承诺的各种方式: 有一句话确实是说有Promise.defer()——但它已经过时了 现在有没有一种标准的方法可以在Javascript中实现延迟承诺?否则,我可能会实现原始问题中的一个不同对象 现在有没有一种标准的方法可以在Javascript中实现延迟承诺?否则,我可能会实现原始问题中的一个不同对象 没有。在当前的Javascript版本中没有标准的方法来实现这一点。显然,那些指导Promise规范的人认为对它的实际需求(Promise

这里的这个问题——从2014年开始——概述了履行延期承诺的各种方式:

有一句话确实是说有
Promise.defer()
——但它已经过时了

现在有没有一种标准的方法可以在Javascript中实现延迟承诺?否则,我可能会实现原始问题中的一个不同对象

现在有没有一种标准的方法可以在Javascript中实现延迟承诺?否则,我可能会实现原始问题中的一个不同对象

没有。在当前的Javascript版本中没有标准的方法来实现这一点。显然,那些指导Promise规范的人认为对它的实际需求(Promise executor函数根本不起作用的情况)非常罕见,他们宁愿不将它添加到标准中。也可能有人认为,如果他们将其添加到标准中,太多的人会在不应该使用的情况下使用它(使用promise executor会产生更好的代码的情况)。显然,这都是一些人的意见,但是那些致力于这些标准的人可以决定采用什么样的意见


正如你所知道的,有一些非常简单的解决方法来定义你自己的。正如我之前在评论中所指出的,这里有几个关于这个主题的相关帖子,包括变通代码:和。

没有标准方法。注意,以这种方式使用延迟通常被认为是一种反模式。它(像大多数反模式一样)有时是必要的,但足够深奥,以至于它没有包含在本机Promise实现中。哈-@JaredSmith你能再深入一点吗?虽然我不一定认为你的问题完全是一个骗局。在这些场景中,您无法避免它,您可以通过将resolve回调分配给外部作用域中的var,然后将其传递给事件侦听器来伪造它。谨慎使用:延迟几乎从来都不是必需的(这就是本机实现不公开它们的原因)。