gpt4 book ai didi

javascript - 使用 web3-core-promievent 创建一个返回 PromiEvent 的函数

转载 作者:行者123 更新时间:2023-11-29 23:11:22 25 4
gpt4 key购买 nike

我已尝试运行以下代码段,但无济于事。

我找到了片段 here .

var Web3PromiEvent = require('web3-core-promievent');

var myFunc = function(){
var promiEvent = Web3PromiEvent();

setTimeout(function() {
promiEvent.eventEmitter.emit('done', 'Hello!');
promiEvent.resolve('Hello!');
}, 10);

return promiEvent.eventEmitter;
};


// and run it
myFunc()
.then(console.log)
.on('done', console.log);

我总是遇到这种错误:TypeError: myFunc(...).then(...).on is not a function

能够从我的函数中发出事件对我来说至关重要,这表明在函数执行期间发生了事情。如果可能的话,我更愿意使用 async/await 语法。

我真的很想避免向函数发送回调参数,但能够按照我认为适合代码不同部分的方式处理事件。

最佳答案

我认为您误读了文档,您可以将 .on 方法链接到 Web3PromiEvent 对象,但不能链接到 Promise 返回的对象.then

所以要么你链接 .on 要么你链接 .then

myFunc()
.then(console.log);

myFunc()
.on('done', console.log);

正如您在下图中看到的,.then 返回的 Promise 没有附加 .on 方法,无论 Promise Web3PromiEvent 返回。

enter image description here

这是 doc 中的原始示例

// in node.js
var Web3PromiEvent = require('web3-core-promievent');

var myFunc = function(){
var promiEvent = Web3PromiEvent();

setTimeout(function() {
promiEvent.eventEmitter.emit('done', 'Hello!');
promiEvent.resolve('Hello!');
}, 10);

return promiEvent.eventEmitter;
};


// and run it
myFunc()
.then(console.log); //see the semicolon
.on('done', console.log); //see the semicolon

关于javascript - 使用 web3-core-promievent 创建一个返回 PromiEvent 的函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53815676/

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