Итак, я получил эту ошибку на Node.js
(узел:359) UnhandledPromiseRejectionWarning: Ошибка: не удалось подключиться в Socket.onerror (/home/runner/something/node_modules/discord-rpc/src/transports/ipc.js:32:16) в Object.onceWrapper (events.js:421:26) в Socket.emit (events.js:314:20) в Socket.EventEmitter.emit (domain.js:483:12) в emitErrorNT (internal/streams/destroy.js:92:8) в emitErrorAndCloseNT (internal/streams/destroy.js:60:3) в процессеTicksAndRejections (внутренний/процесс/task_queues.js:84:21) (узел: 359) UnhandledPromiseRejectionWarning: отклонение необработанного обещания. Эта ошибка возникла либо из-за броска внутри асинхронной функции без блока catch, либо из-за отклонения обещания, которое не было обработано с помощью .catch(). Чтобы завершить процесс узла при отклонении необработанного обещания, используйте флаг CLI
--unhandled-rejections=strict
(см. https://nodejs.org/api/cli.html#cli_unhandled_rejections_mode). (идентификатор отклонения: 1) (узел: 359) [DEP0018] Предупреждение об устаревании: отказы от необработанных обещаний устарели. В будущем отказы от обещаний, которые не будут обработаны, завершат процесс Node.js с ненулевым кодом выхода.
Вот мой код:
const fetch = require('node-fetch');
const RPC = require('discord-rpc');
const client = new RPC.Client({
transport: 'ipc'
});
client.on('ready', () => {
const inexsignal = fetch('https://60c1d6e84f7e880017dc0883.mockapi.io/api/v1/data', {
method: 'GET',
headers: { 'Content-Type': 'application/json' }
});
const signaldata = inexsignal.json();
// definitions
const Details = signaldata[0].Details
const State = signaldata[0].State
const Largeimg = signaldata[0].LargeImg
const SmallImg = signaldata[0].SmallImg
const LargeText = signaldata[0].LargeText
const SmallText = signaldata[0].SmallText
const Label1 = signaldata[0].Label1
const Label2 = signaldata[0].Label2
const URL1 = signaldata[0].URL1
const URL2 = signaldata[0].URL2
client.request('SET_ACTIVITY', {
pid: process.pid,
activity: {
details: `${details}`,
state: `${state}`,
timestamps: {
start: Date.now()
},
assets: {
large_image: `${LargeImg}`,
large_text: `${LargeText}`,
small_image: `${SmallImg}`,
small_text: `${SmallText}`
},
buttons: [
{ label: `${Label1}`, url: `${URL1}` },
{ label: `${Label2}`, url: `${URL12}` }
]
}
});
});
client.login({
clientId: '',
clientSecret: ''
});```
I've removed my client ID and secret for privacy. How do I fix this error?
выборка данных является асинхронной работой, поэтому
inexsignal.json();
вызывается до того, как данные будут загружены, вы можете подтвердить это, поместив его в блок try catch.