gpt4 book ai didi

JavaScript/NodeJS - 添加 promise 作为扩展方法

转载 作者:行者123 更新时间:2023-11-30 15:22:35 24 4
gpt4 key购买 nike

对此可能有一个简单的答案,但我只需要在 C# 中使用扩展方法(他们甚至在 JS 中调用它吗?)..

我有一个使用事件的第 3 方库。我需要在事件被调用后 调用一个函数。我可以通过 promise 轻松地做到这一点,但第 3 方库是在 ES6 之前编写的,并且没有内置 promise 。这是一些示例代码 -

wRcon.on('disconnect', function() {
console.log('You have been Disconnected!')
})

理想情况下,我希望能够实现这样的东西 -

wRcon.on('disconnect', function() {
console.log('You have been Disconnected!')
}).then(wRcon.reconnect())

总结一下我的问题,我如何扩展 wRcon.on 以允许 promise (或其他一些回调方法)?

最佳答案

Promises 和 events,虽然表面上看起来很相似,但实际上解决了 Javascript 中的不同问题。

Promises 提供了一种管理异步操作的方法,可以在预期结果的情况下管理异步操作,但您只是不知道需要多长时间。

事件提供了一种管理异步操作的方法,在某些情况下可能 发生,但您不知道它何时(甚至是否)发生。

在 Javascript 中,没有简单的方法在两者之间“接口(interface)”。

但是对于您给出的示例,有一个简单的解决方案:

wRcon.on('disconnect', function() {
console.log('You have been Disconnected!')
wRcon.reconnect()
})

这可能不如您的解决方案优雅,如果您打算在末尾附加更长的 .then() 处理程序链,它就会崩溃,但它会完成工作。

关于JavaScript/NodeJS - 添加 promise 作为扩展方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43474730/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com