小编Mic*_*olf的帖子

如何让XHR.onreadystatechange返回其结果?

我是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)

提前致谢.

javascript closures xmlhttprequest

16
推荐指数
1
解决办法
3万
查看次数

jslint:为什么此代码会导致"严重违规"错误消息?

运行以下简单代码会导致"严格违规".错误信息.我一直在努力寻找有关原因以及如何解决问题的文档.任何输入将非常感激.

错误:

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)

此致,埃吉尔.

javascript jslint

14
推荐指数
2
解决办法
7068
查看次数

如果带有MSG_PEEK的非阻塞recv成功,那么没有MSG_PEEK的后续recv是否也会成功?

这是我正在研究的一些代码的简化版本:

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.)

sockets nonblocking recv

12
推荐指数
3
解决办法
2万
查看次数