【发布时间】:2016-10-18 21:17:26
【问题描述】:
我这里有这个功能:
function createInsta(email, userid) {
if (!fs.existsSync('users/' + email + '/' + userid)) {
fs.mkdir('users/' + email + '/' + userid)
fs.writeFileSync(('users/' + email + '/' + userid + '/instagram.json'), fs.readFileSync("data/data.json", "utf-8"))
console.log("insta folder created");
}
console.log("Initializing Data")
var data = fs.readFileSync('users/' + email + '/' + userid + '/instagram.json', "utf-8")
data = JSON.parse(data);
var result;
request(("https://instagram.com/" + userid + "/?__a=1"), function(error, response, body) {
var res = JSON.parse(body);
result = res.user.followed_by.count
if (error) {
console.log(err)
}
})
while (result === undefined) {
deasync.sleep(100)
}
data.STARTING_COUNTS[0].DAY = result;
data.STARTING_COUNTS[0].WEEK = result;
data.STARTING_COUNTS[0].MONTH = result;
}
在控制台打印出Initializing Data 之后,控制台立即显示Segmentation fault
我不知道为什么会这样,我的代码似乎没有任何东西会导致这样的错误。
任何指针?谢谢
【问题讨论】:
-
“任何指针” - 双关语?
-
我不喜欢 ->
while (result === undefined) {deasync.sleep(100) }的样子,为什么需要它? -
@Keith 我用它作为这个函数的 nodejs 异步模型的简单快速破解,我在其他函数中使用它没有问题,我怀疑它是段错误的原因跨度>
-
@joews 不是我第一次发这个的时候,但那很有趣哈哈
-
我会说它最有可能是段错误的候选者。 github.com/abbr/deasync/issues/48 理论上,使用纯形式的 node.js 应该不可能出现段错误,因为 javascript 在沙箱中,但是你的 deasync 是一个 c++ hack,肯定会出现段错误。 Node.Js 从一开始就被设计为异步的,试图强制进入同步模式只是自找麻烦,..
标签: javascript node.js segmentation-fault