相关疑难解决方法(0)

Uint8Array在Javascript中字符串

我有一些UTF-8编码数据存在于Javascript中的一系列Uint8Array元素中.有没有一种有效的方法将这些解码为常规的javascript字符串(我相信Javascript使用16位Unicode)?我不希望当时添加一个字符,因为字符串concaternation将变为CPU密集型.

javascript

95
推荐指数
10
解决办法
10万
查看次数

自定义对象上的addEventListener

我创建了一个有几种方法的对象.其中一些方法是异步的,因此我想使用事件来在方法完成时执行操作.为此,我尝试将addEventListener添加到对象.

的jsfiddle

var iSubmit = {
    addEventListener: document.addEventListener || document.attachEvent,
    dispatchEvent: document.dispatchEvent,
    fireEvent: document.fireEvent,   


    //the method below is added for completeness, but is not causing the problem.

    test: function(memo) {
        var name = "test";
        var event;
        if (document.createEvent) {
            event = document.createEvent("HTMLEvents");
            event.initEvent(name, true, true);
        } else {
            event = document.createEventObject();
            event.eventType = name;
        }
        event.eventName = name;
        event.memo = memo || { };

        if (document.createEvent) {
            try {
                document.dispatchEvent(event);
            } catch (ex) {
                iAlert.debug(ex, 'iPushError');
            }
        } else { …
Run Code Online (Sandbox Code Playgroud)

javascript object addeventlistener cordova

56
推荐指数
8
解决办法
7万
查看次数

在Express.js中使用相同的响应对象发送多个响应

我有一个长时间运行的过程,需要在多个阶段发回数据.有没有办法用express.js发回多个响应

res.send(200, 'hello')
res.send(200, 'world')
res.end() 
Run Code Online (Sandbox Code Playgroud)

但当我跑完curl -X POST localhost:3001/helloworld所有的时候,我得到了hello

我怎样才能发送多个回复,或者这与快递无关?

javascript node.js express

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

服务器发送事件/事件源与 node.js (express)

我正在尝试使用 SSE 将 JSON 数据发送到浏览器,但我似乎无法正确处理,我也不知道为什么。

服务器端看起来像这样:

var express     = require("express"),
    app         = express(),
    bodyParser  = require('body-parser');

app.use(express.static(__dirname + '/'));
app.use(bodyParser.urlencoded({ extended: true }));
app.use(bodyParser.json());

var testdata = "This is my message";

app.get('/connect', function(req, res){
    res.writeHead(200, {
      'Connection': 'keep-alive',
      'Content-Type': 'text/event-stream',
      'Cache-Control': 'no-cache'
    });

    setInterval(function(){
      console.log('writing ' + testdata);
      res.write('data: {"msg": '+ testdata +'}\n\n');
    }, 1000);
});

/*
app.post('/message', function(req, res) {
  testdata = req.body;
});
*/

var port = 8080;
app.listen(port, function() {
  console.log("Running at Port " + port);
}); …
Run Code Online (Sandbox Code Playgroud)

javascript json node.js express server-sent-events

8
推荐指数
1
解决办法
8125
查看次数

如何使用 fetch 处理流数据?

我在使用 node.js 处理来自进程的输出流方面使用 async 取得了巨大成功,但我正在努力获得一些我希望可以“使用”浏览器fetchAPI 的东西。

这非常适合异步处理来自进程的输出流:

for await (const out of proc.child.stdout) {
  ...
}
Run Code Online (Sandbox Code Playgroud)

(当然在异步函数上下文中)

我试图在浏览器中做类似的事情,我想在数据从服务器发送给我的同时访问数据。

for await (const chunk of (await fetch('/data.jsonl')).body) {
  console.log('got', chunk);
}
Run Code Online (Sandbox Code Playgroud)

这在 Chrome ( Uncaught TypeError: (intermediate value).body is not async iterable) 中不起作用。

对于我的用例,这不是必需的,所以我现在只是let data = await (await fetch(datapath)).text();在我的客户端代码中使用。这类似于在等待的获取上使用.json()而不是的典型用法.text(),因此在浏览器接收到整个响应之前不能开始处理。由于显而易见的原因,这并不理想。

我在看Oboe.js(我认为相关的 impl 就在这里附近),它几乎处理了这个问题,但它的内部结构相当丑陋,所以看起来这可能是目前唯一的方法?

如果没有实现异步迭代(意味着 async for 还不能使用)是不是还有另一种以实用方式使用 ReadableStream 的方法?

html javascript asynchronous async-await fetch-api

6
推荐指数
2
解决办法
3118
查看次数