[英]Unhandled Promise Exception
我是JavaScript和pubnub的新手。 我正在嘗試用JavaScript發布。 以下是我的代碼
const PubNub = require('pubnub')
const credentials = {
publishKey : 'pub-c-58dae4c4-4a11-4ff5-ad98-a69bf5c086bc',
subscribeKey : 'sub-c-5d1ca66a-2308-11e9-b712-2656c4b29a42',
secretKey : 'sub-c-5d1ca66a-2308-11e9-b712-2656c4b29a42'
}
const CHANNEL = {
TEST : 'TEST',
TESTTWO : 'TESTTWO',
BLOCKCHAIN : 'BLOCKCHAIN'
}
class PubSub {
constructor(blockchain) {
this.blockchain = blockchain;
this.pubnub = new PubNub(credentials);
this.pubnub.subscribe( { channel: [Object.values(CHANNEL)] });
this.pubnub.addListener( this.listener())
}
listener() {
return {
message: messageObject => {
const { channel, message } = messageObject
console.log("Message received on channel "+channel + ". Message is "+message);
if (channel === CHANNEL.BLOCKCHAIN) {
this.blockchain.replaceChain(parsedMessage);
}
}
}
publish( {channel, message}) {
this.pubnub.publish( {channel, message });
}
broadcastChain() {
this.publish( {
channel: CHANNEL.BLOCKCHAIN,
message: JSON.stringify(this.blockchain.chain)
})
}
}
module.exports = PubSub
我到這里來是未處理的諾言異常。 以下是錯誤日志:
(node:9456) UnhandledPromiseRejectionWarning: Error: Validation failed, check status for details
at new PubNubError (C:\Users\sagardeshpande.deshp\test_cryptochain\node_modules\pubnub\lib\core\components\endpoint.js:134:112)
at _class.exports.default (C:\Users\sagardeshpande.deshp\test_cryptochain\node_modules\pubnub\lib\core\components\endpoint.js:32:31)
at PubSub.publish (C:\Users\sagardeshpande.deshp\test_cryptochain\pubnub.js:58:25)
at PubSub.broadcastChain (C:\Users\sagardeshpande.deshp\test_cryptochain\pubnub.js:66:14)
at Timeout.setTimeout [as _onTimeout] (C:\Users\sagardeshpande.deshp\test_cryptochain\index.js:10:26)
at ontimeout (timers.js:436:11)
at tryOnTimeout (timers.js:300:5)
at listOnTimeout (timers.js:263:5)
at Timer.processTimers (timers.js:223:10)
(node:9456) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). (rejection id: 1)
(node:9456) [DEP0018] DeprecationWarning: Unhandled promise rejections are deprecated. In the future, promise rejections that are not handled will terminate the Node.js process with a non-zero exit code
誰能幫忙嗎?
我相信它對您大吼大叫,因為它引發了錯誤並且您沒有發現它。
this.pubnub
.publish( {channel, message })
.then(result => {
// you probably should handle this when successful?
})
.catch(error => { // catch the errors
console.log(error);
});
我認為您的問題與PubNub沒有關系。 PubNub SDK的publish
使用回調模式。 使用它來查看發布結果:
this.pubnub.publish( {channel, message }, function(status, response) {
console.log('Publish Result: ', status, response)
});
如果您沒有看到記錄的PubNub錯誤,則問題可能與您的NPM配置有關。 如果是這種情況, UNABLE_TO_GET_ISSUER_CERT_LOCALLY
在此處嘗試以下對UNABLE_TO_GET_ISSUER_CERT_LOCALLY
答案: https : UNABLE_TO_GET_ISSUER_CERT_LOCALLY
如果尚未定義,則應嘗試定義parsedMessage
。
const parsedMessage = JSON.parse(message);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.