首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将变量输出到控制台后,将返回函数的值

将变量输出到控制台后,将返回函数的值
EN

Stack Overflow用户
提问于 2019-06-13 17:26:47
回答 2查看 50关注 0票数 0

在循环中,我调用该函数并将标识符传递给它,之后该函数应将空缺返回给我。

代码语言:javascript
复制
const Profile = require('upwork-api/lib/routers/jobs/profile.js').Profile;
...
let jobsDetails = [];
for (let valueKeys of Object.values(arrayOfJobs)) {
    getJobDitalis(api, valueKeys, (error, data) => {
        console.log(data.profile)
        jobsDetails.push(`${data.profile}`);
    });
    console.log(jobsDetails)
}
...
function getJobDitalis(api, key, callback) {
    const profile = new Profile(api);
    profile.getSpecific(key, (error, data) => {
        callback(error, data);
    });
}

但由于某些原因,首先在控制台中显示一个空对象,然后只显示有关空缺的信息。也就是说,首先触发console.log (jobsDetails),然后只触发console.log (data.profile)

代码语言:javascript
复制
[]
[]
[]
{job}
{job}
{job}

为什么会发生这种情况?我的错误是什么?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-06-13 20:06:40

使用async await,您可以使异步任务同步。

我不知道你的代码结构,但我试着从给定的数据中找出一个解决方案。

代码语言:javascript
复制
function getJobDitalis(api, key, callback) {
    const profile = new Profile(api);
    profile.getSpecific(key, (error, data) => {
        callback(error, data);
    });
}
...
(async ()=> {
let jobDetails = [];
for (let valueKeys of Object.values(arrayOfJobs)) {
const profile = await new Promise(resolve=>{
    getJobDitalis(api, valueKeys, (error, data) => {
        console.log(data.profile)
        resolve(data.profile);
    });
  })
 jobDetails.push(profile)
}
 console.log(jobDetails); 
 //do your task with jobDetails
})()

我让IIFE实现了异步功能。

票数 1
EN

Stack Overflow用户

发布于 2019-06-13 17:38:52

流(让我们假设for循环的一次迭代):

代码语言:javascript
复制
getJobDetalis(api, key, callback)
    profile.getSpecific(key, func)
        func(error, data)
            callback(error, data)
                console.log(data.profile)
console.log(jobsDetails)

但是,profile.getSpecific不一定要等待func完成。

由于第一次打印是从func的调用堆栈执行的,因此它不一定会在第二次打印之前发生。

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

https://stackoverflow.com/questions/56577396

复制
相关文章

相似问题

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