相关疑难解决方法(0)

了解node.js中的promise

根据我的理解,有三种方法可以调用异步代码:

  1. 事件:例如. request.on("event", callback);
  2. 回调:例如. fs.open(path, flags, mode, callback);
  3. 承诺

我找到了一个承诺库https://github.com/kriszyp/node-promise,但我没有得到它.

有人可以解释一下什么是承诺,为什么我应该使用它?

另外,为什么它从Node.js中删除了?

javascript node.js promise

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

如何在nodejs同步中进行此请求调用?

我的nodejs应用程序中有一个名为get_source_at的函数.它需要一个uri作为参数,其目的是从该uri返回源代码.我的问题是我不知道如何使函数同步调用请求,而不是给它回调函数.我希望控制流停止加载uri所需的几秒钟.我怎样才能做到这一点?

function get_source_at(uri){
    var source;
    request({ uri:uri}, function (error, response, body) {
        console.log(body);
    });
    return source;
}
Run Code Online (Sandbox Code Playgroud)

此外,我已经阅读过关于'事件'以及节点是如何'偶像'的,我应该在编写代码时尊重它.我很高兴这样做,但我必须有一种方法来确保我在继续我的应用程序的控制流之前从uri获得源代码 - 所以如果不是通过使函数同步,那怎么办呢? ?

javascript request node.js

19
推荐指数
3
解决办法
9万
查看次数

express-ws如何定期检查自定义事件并自动执行操作

我正在使用express-ws https://www.npmjs.com/package/express-ws(有助于为express和websocket客户端创建服务器的API).

app.ws('/', function(ws, req) {
  console.log("New connection")
  if (content.length > 0) {
    console.log(content)
    ws.send(content)
  }
  ws.on('message', function(msg, flags) {
    console.log("Received "+ msg);
  });
  ws.on('data', function(msg, flags) {
    var data = []; // List of Buffer objects
    res.on("data", function(chunk) {
      data.push(chunk); // Append Buffer object
      console.log(data)
    })
  })
});
Run Code Online (Sandbox Code Playgroud)

现在您可以看到上面的代码,无论何时创建连接,它都会检查内容的长度,并在超过0时向客户端发送conetent.

遵循路由器代码,在Web请求上更新文件.如果在连接创建后的某个时间(如果此文件被修改),此连接不知道它,因此不会调用此函数,因此不会调用send函数.我也试过fs.watch但是我无法让它工作.

router.post('/run_restart', function(req, res, next) {
  text = '{"to_do": "run_test", "devices":"all", "argv": { "test": "' + req.body.cmd + '", "cycles": "' + req.body.cycles + '", "awake_for": "' + req.body.wt …
Run Code Online (Sandbox Code Playgroud)

filesystemwatcher websocket node.js express

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