当前位置: 首页 > 知识库问答 >
问题:

对象不是在函数外部返回值,而是在函数内部返回值

公冶峰
2023-03-14

getblog()从数据库中提取博客。

let getBlog = () => {
  let blogContent = {};

  let command = "select * from informations;";
  database.query(command, (err, results) => {
    if (err) console.log(err);

    for (let totalResults = 0; totalResults < results.length; totalResults++) {
      let newObjectForSending = {
        id: results[totalResults].id,
        title: results[totalResults].title,
        description: results[totalResults].description,
        likes: results[totalResults].likes,
      };
      blogContent[totalResults] = newObjectForSending;
    }
    console.log(blogContent);
    /*
here blogContent shows
{
"id":1,
"title":"this is title",
"description":"This is best description",
likes:"300"
}
*/
  });
  console.log(blogContent);
  /*
here blogContent shows
{ }
*/
  return blogContent;
};

为什么这里的blogContent在函数的上下文中是全局的,而我们正在内部更改它,所以它应该返回值,有人能解释为什么会这样吗?

有没有不使用promise/async/await的方法>>>有人给了我答案
我如何从异步调用返回响应?
但这一点我不知道,最主要的是我不知道Ajax。

共有1个答案

桓兴腾
2023-03-14

首先,让我们创建一个异步执行程序

// It take 2 args, 1st is time in milliseconds, 2nd is callback function which return "Results"
function delayCallback(ms, fn) {
    setTimeout(fn, ms, "Results");
}

delaycallback是通过事件循环执行I/O,这意味着执行需要时间...

null

function delayCallback(time, fn) {
    setTimeout(fn, time, "Results");
}

console.log("Executing callback");
console.time("Callback executed...");
delayCallback(1000, () => {
    console.timeEnd("Callback executed...");
});

console.log("Hello World");
 类似资料:
  • 问题内容: 如何从函数内部返回值? 这是我的基本设置: 问题答案: 使用回调函数,这是JavaScript的方式:

  • 我试图了解异步/等待如何与promise一起工作。 据我所知,await应该是阻塞的,在上面的代码中,它似乎阻塞了返回带有原语

  • 问题内容: 我有一个JavaScript函数,可将数据发布到验证脚本并从那里获取值。post请求上的回调函数返回一个布尔值,而我试图获取 整个 函数以返回该布尔值。现在,回调函数返回正确的值,但是函数本身不返回任何值。这是代码: 我意识到这有点像“同步”调用,而这并不是AJAX的目的,但是我已经在validate.php(数据库调用等)中拥有许多我无法在Javascript中实现的功能,我看到了线

  • 在rust中,任何函数都有返回类型,当函数返回时,会返回一个该类型的值。我们先来看看main函数: fn main() { //statements } 之前有说过,函数的返回值类型是在参数列表后,加上箭头和类型来指定的。不过,一般我们看到的main函数的定义并没有这么做。这是因为main函数的返回值是(),在rust中,当一个函数返回()时,可以省略。main函数的完整形式如下:

  • Lua 具有一项与众不同的特性,允许函数返回多个值。Lua 的库函数中,有一些就是返回多个值。 示例代码:使用库函数 string.find,在源字符串中查找目标字符串,若查找成功,则返回目标字符串在源字符串中的起始位置和结束位置的下标。 local s, e = string.find("hello world", "llo") print(s, e) -->output 3 5 返回多个值

  • 我一直在做这个岩石剪刀剪刀程序一段时间,它没有显示的方式,它应该是应该的。我在代码中使用了值返回函数。问题在程序的末尾显现出来。游戏的结果将被替换,但实际显示的是另一个提示,供用户输入他们的选择。下面是我的代码: