[英]Node js variable is not working in outside function
谁能告诉我如何在 axios 之外使用var dataTitle
dataTitle ?
express = require('express') /
const bodyParser = require('body-parser')
const axios = require('axios');
var randomInt = require('random-int');
const URL = 'url';
var randomNumber = randomInt(11)
axios.get(URL + randomNumber)
.then(function (response) {
var dataTitle = response.data.question;
console.log(dataTitle)
})
.catch(function (error) {
console.log(error);
});
看来您的问题是关于 JavaScript 中的变量范围。 您不能使用在函数内部声明的函数外部的变量。 因此,您必须在 axios 之前声明它并在 axios 中使用它,如下所示:
express = require('express');
const bodyParser = require('body-parser');
const axios = require('axios');
var randomInt = require('random-int');
const URL = 'url';
var randomNumber = randomInt(11);
var dataTitle;
axios.get(URL + randomNumber)
.then(function (response) {
dataTitle = response.data.question;
console.log(dataTitle)
})
.catch(function (error) {
console.log(error);
});
除了Pouya Jabbarisani 的回答之外,由于axios.get
返回一个承诺并且具有异步行为,因此函数之外的console.log(dataTitle)
仍然会导致undefined
。
为了获得真正的价值,请使用await axios.get(...)
。
此外,您需要使包装函数async
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.