[英]TypeError: json is not iterable
錯誤
C:\Development\AlphaLauncher-Recode\app\assets\js\loggerutil.js:29 [Launcher] TypeError: json is not iterable
at DistroIndex._resolveInstances (C:\Development\AlphaLauncher-Recode\app\assets\js\distromanager.js:260)
at Function.fromJSON (C:\Development\AlphaLauncher-Recode\app\assets\js\distromanager.js:253)
at Request._callback (C:\Development\AlphaLauncher-Recode\app\assets\js\distromanager.js:327)
at Request.self.callback (C:\Development\AlphaLauncher-Recode\node_modules\request\request.js:185)
at Request.emit (events.js:203)
at Request.<anonymous> (C:\Development\AlphaLauncher-Recode\node_modules\request\request.js:1161)
at Request.emit (events.js:203)
at IncomingMessage.<anonymous> (C:\Development\AlphaLauncher-Recode\node_modules\request\request.js:1083)
at Object.onceWrapper (events.js:291)
at IncomingMessage.emit (events.js:208)
這是我嘗試運行我制作的啟動器時遇到的錯誤。 源代碼尚未在我的 github 上公開,但是,我需要它做的是從我的保管箱中獲取分發索引,以允許啟動器加載到實例中以運行啟動器。
請求和捕獲的代碼。
exports.DistroIndex;
exports.Types = {
Library: 'Library',
ForgeHosted: 'ForgeHosted',
Forge: 'Forge',
ForgeMod: 'ForgeMod',
File: 'File',
VersionManifest: 'VersionManifest'
}
let data = null;
exports.pullRemote = async function(distroURL) {
return new Promise((resolve, reject) => {
let opts = {
url: distroURL,
timeout: 10000
}
request(opts, (error, _resp, body) => {
if(!error) {
try {
data = DistroIndex.fromJSON(JSON.parse(body));
resolve(data);
}
catch (e) {
reject(e);
}
}
else {
reject(error);
}
});
});
}
exports.getDistribution = function() {
return data;
}
我一直在玩它一段時間,知道如何解決這個問題嗎? 我一直在嘗試,但也許用一雙新的眼睛,我們可以一起解決問題。
順便說一下,這是一個我的世界啟動器,帶有自動更新和修改的 jar 下載。
_resolveInstances(json) {
const arr = [];
for(let s of json) {
arr.push(Instance.fromJSON(s));
}
this.instances = arr;
}
從這里出錯, for(let s of json)
JSON object 不能迭代。 您可以像這樣使用每個鍵讀取 JSON object 值。
for(const key in json) {
console.log(json[key]);
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.