首页 > 解决方案 > 将从包返回的数据分配给变量

问题描述

假设我有这个工作代码:

const myPackage = require('myPackage');
myPackage.internal_func(parameter).then(console.log);

这将返回一个 JSON,假设:

{
    a: 'valA',
    b: 'valB'
}

如果我只想将 的值a分配给变量怎么办?

我试过这个:

const myPackage = require('myPackage');
var data = myPackage.internal_func(parameter).a;
console.log(data);

不幸的是,这会返回:

undefined

标签: javascriptnode.jsjson

解决方案


如果myPackage.internal_func(parameter)返回一个 Promise,那么您需要使用async/await或将函数与 then() 链接起来。

使用 Then()

const myPackage = require('myPackage');
myPackage.internal_func(parameter).then(data => {
   console.log(data.a);
});

使用异步/等待

const async = require('async');
const myPackage = require('myPackage');
const testFunction = async function(){
  var data = await myPackage.internal_func(parameter);
  console.log(data.a);
}

如果您在函数中使用此代码,请不要忘记在函数声明中包含异步。


推荐阅读