我是JavaScript编程的新手.我现在正在处理我的Google Chrome扩展程序.这是不起作用的代码......:P
我希望getURLInfo函数返回其JSON对象,并希望将其放入resp.有人可以修改我的代码让它工作吗?
function getURLInfo(url)
{
var xhr = new XMLHttpRequest();
xhr.open
(
"GET",
"http://RESTfulAPI/info.json?url="
+ escape(url),
true
);
xhr.send();
xhr.onreadystatechange = function()
{
if (xhr.readyState == 4)
{
return JSON.parse(xhr.responseText);
}
}
}
var resp = getURLInfo("http://example.com/") // resp always returns undefined...
Run Code Online (Sandbox Code Playgroud)
提前致谢.
运行以下简单代码会导致"严格违规".错误信息.我一直在努力寻找有关原因以及如何解决问题的文档.任何输入将非常感激.
错误:
Error:
Problem at line 6 character 4: Strict violation.
} (this));
Run Code Online (Sandbox Code Playgroud)
示例代码:
/*jslint browser: true, onevar: true, undef: true, nomen: true, eqeqeq: true, plusplus: true, bitwise: true, regexp: true, strict: true, newcap: true, immed: true */
"use strict";
(function (window) {
} (this));
Run Code Online (Sandbox Code Playgroud)
此致,埃吉尔.
这是我正在研究的一些代码的简化版本:
void
stuff(int fd)
{
int ret1, ret2;
char buffer[32];
ret1 = recv(fd, buffer, 32, MSG_PEEK | MSG_DONTWAIT);
/* Error handling -- and EAGAIN handling -- would go here. Bail if
necessary. Otherwise, keep going. */
/* Can this call to recv fail, setting errno to EAGAIN? */
ret2 = recv(fd, buffer, ret1, 0);
}
Run Code Online (Sandbox Code Playgroud)
如果我们假设第一次调用recv成功,返回1到32之间的值,是否可以安全地假设第二次调用也会成功?ret2能否小于ret1?在哪些情况下?
(为了清楚起见,假设在第二次调用recv期间没有其他错误条件:没有传递信号,它不会设置ENOMEM等.还假设没有其他线程会查看fd.
我在Linux上,但我相信MSG_DONTWAIT是这里唯一的Linux特有的东西.假设之前在其他平台上设置了正确的fnctl.)