사수가필요해
125
2020-05-25 13:31:42
1
152

web3js의 이벤트를 await구문으로 처리하는 방법


// using the callback
web3.eth.sendTransaction({
    from: '0xde0B295669a9FD93d5F28D9Ec85E40f4cb697BAe',
    data: code // deploying a contracrt
}, function(error, hash){
    ...
});

// using the promise
web3.eth.sendTransaction({
    from: '0xde0B295669a9FD93d5F28D9Ec85E40f4cb697BAe',
    to: '0x11f4d0A3c12e86B4b5F39B213F7E19D048276DAe',
    value: '1000000000000000'
})
.then(function(receipt){
    ...
});


// using the event emitter
web3.eth.sendTransaction({
    from: '0xde0B295669a9FD93d5F28D9Ec85E40f4cb697BAe',
    to: '0x11f4d0A3c12e86B4b5F39B213F7E19D048276DAe',
    value: '1000000000000000'
})
.on('transactionHash', function(hash){
    ...
})
.on('receipt', function(receipt){
    ...
})
.on('confirmation', function(confirmationNumber, receipt){ ... })
.on('error', console.error); // If a out of gas error, the second parameter is the receipt.


web3 docs의 이벤트 정보 불러오기 위해 사용하는 예제코드입니다.


route1.post('/setMember', async(req,res)=>{
 const result = await web3.eth.sendTransaction(rawData);
 res.send(result) //transactionReceipt 반환
}


저는 원래 이런 형식으로 await 처리하여 callback에 대한 결과값인 트랜잭션 영수증을 반환하였었는데,
eventEmitter의 on 부분을 처리하고자 한다면 어떤식으로 코드를 작성해야하나요?

0
0
  • 답변 1

  • nullpointerTlqkf
    145
    2020-05-25 14:22:53

    저라면 성공 했을 때 Promise 객체를 만들어 resolve를 리턴해주는 매서드를 작성할거같네요 

    1
  • 로그인을 하시면 답변을 등록할 수 있습니다.