首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >从回调中获取值

从回调中获取值
EN

Stack Overflow用户
提问于 2019-05-28 02:30:42
回答 3查看 56关注 0票数 0

我有一个回调,我需要从我的回调中取出数组。

我正在尝试将等待的数组返回到预定义的数组中。

代码语言:javascript
复制
let documents = [];

  socket.on('echo', async function(documents, data){
    documents = await data;
    console.log(documents); // shows me, what I want to see
  });

  console.log(documents); // empty Array

我需要预定义的数组documents中的结果

我已经读了几篇Tuts,但我还是不明白。我知道在stackoverflow上它被sked了几次。但是所有的线程似乎都比我的情况更复杂。所以我希望用一个更简单的方法把它弄清楚。

EN

回答 3

Stack Overflow用户

发布于 2019-05-28 02:44:40

代码语言:javascript
复制
let documents = await socket.on('echo', async function(documents, data){
    console.log(documents); 
    return data; 
  });

console.log(documents); 
票数 2
EN

Stack Overflow用户

发布于 2019-05-28 02:45:03

你需要先理解一些东西。当它运行时,回调中的东西不会运行单元,服务器将发出该事件,在你的例子中是'echo‘。

我认为你想要做的是在回调之外使用文档。您可以创建一个函数,并在发出事件时调用它。

如下所示:

代码语言:javascript
复制
const manageDocuments = (documents) => {
    // do what you want with documents array
    console.log(documents);
}

socket.on('echo', async function(documents, data){
    documents = await data;
    manageDocuments(documents);
});

当然,您也可以摆脱异步/等待

票数 1
EN

Stack Overflow用户

发布于 2019-05-28 02:45:03

问题是套接字函数外部的代码使用空数组执行,因为在运行时只执行一次。

如果想要访问套接字函数中的文档,则必须进行持久化,或者在另一个循环中使用socket.on。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56330916

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档