以前的提问
app.get('/', (req, res) => {
function fn() {
return new Promise(function (resolve, reject) {
let value = 123;
if (true) {
resolve(value);
} else {
reject(error);
}
})
.then(value => {
return value
});
}
console.log(fn1()); //这里的打印结果为promise
res.send(fn1()); //这里返回结果为{}
//预期想取得的值为value(123)
})
在大佬们的指导下,终于理解了,现在的解决方法,这里的axios本身就是一个promise
const axios = require('axios')
var url = 'http://baidu.com'
function getdata(url) {
return axios.get(url).then(res=>{
return res.data
})
}
// 通过async/await去操作得到的对Promise象,也就是说,要想获取到Promise.then的返回值,就必须利用await获取,要想使用await,就必须在函数前面加上async
async function run() {
result = await getdata(url)
console.log(result)
}
run()
promise 是异步的,所以你得在 then 里面去使用