【问题标题】:To bring a variable out of a function scope(JS) [duplicate]将变量带出函数范围(JS)[重复]
【发布时间】:2021-02-05 13:13:54
【问题描述】:
    request.post(options,  function (error, response, body) {
      if (!error && response.statusCode == 200) {
        res.writeHead(200, {'Content-Type': 'text/json;charset=utf-8'});
        res.end(body);
        console.log(body);
        var JSONObject = JSON.parse(body);
        o = JSONObject["langCode"];
      } else {
        res.status(response.statusCode).end();
        console.log('error = ' + response.statusCode);
      }
    })
    console.log(o);
    const post = await Post.create({
      content: req.body.content,
      Language: o,
      UserId: req.user.id,
    });
    

我试图将函数名放在函数或返回方法中,但它不起作用。 我要将变量 o 移出函数范围。 我想把它保存在post.create的数据库中,我该怎么办?

【问题讨论】:

  • 在收到post请求之前不能保存在数据库中。
  • 这也可能有助于思考回调:felix-kling.de/blog/2019/…
  • 真的没有办法将它保存到request.post之外的数据库吗? const 帖子在 request.post 之外重写。
  • “真的没有办法将它保存到 request.post 之外的数据库中吗?” 代码不一定要包含在 request.post 中。它位于 哪里 并不重要。重要的是 何时 它被执行。您可以将数据库代码放在另一个函数中,并从request.post 代码中调用它。这样可以确保只有在数据可用时才执行数据库代码。
  • 我发布它是因为我担心有人有同样的担忧。我改变了前后顺序。并且先 Post.create 然后继续 Post.update 来解决它。我开始开发它的时间不长,所以即使它有效,我也不知道这是否是正确的方法。编码愉快。

标签: javascript function variables scope


【解决方案1】:

为什么不将代码移到请求处理程序中呢? 我的意思是:

request.post(options,  async function (error, response, body) {
  if (!error && response.statusCode == 200) {
    res.writeHead(200, {'Content-Type': 'text/json;charset=utf-8'});
    res.end(body);
    console.log(body);
    var JSONObject = JSON.parse(body);
    o = JSONObject["langCode"];
    console.log(o);
    const post = await Post.create({
      content: req.body.content,
      Language: o,
      UserId: req.user.id,
    });
  } else {
    res.status(response.statusCode).end();
    console.log('error = ' + response.statusCode);
  }
})

【讨论】:

  • 对不起,我不擅长解释。我必须在 request.post 之外使用 const post。我照你说的做了,但是这个帖子在函数范围之外也是不可用的。
猜你喜欢
  • 1970-01-01
  • 2017-05-28
  • 2017-08-09
  • 2011-07-10
  • 1970-01-01
  • 1970-01-01
  • 2019-06-07
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多