我有一个函数使用lodash
' .find
方法返回与变量(位置)匹配的对象的值(IATA代码)。我需要能够调用此函数将IATA代码从位置推送到数据库中,但我认为它目前已超出范围,我无法确定如何将结果输出到正确回归。
任何指针都会非常感激。
功能
var newCode = function getIATA () {
jsonfile.readFile(file, function(err, obj) {
// This works
console.log('1.' + ' ' + location)
var iataCode = _.result(_.find(obj, function (obj1) {
return obj1.name === location
}), 'iata')
// This works as well
console.log('2.' + ' ' + iataCode)
})
}
// This does not
newCode(location);
console.log('3.' + ' ' + newCode)
Console.log (按此顺序排列,所以我假设错误
3. function getIATA() {
jsonfile.readFile(file, function(err, obj) {
// This works
console.log('1.' + ' ' + location)
var iataCode = _.result(_.find(obj, function (obj1) {
return obj1.name === location
}), 'iata')
// This works as well
console.log('2.' + ' ' + iataCode)
})
}
POST /add 302 36.253 ms - 46
1. City
2. LCY
答案 0 :(得分:0)
这只是异步行为的本质。从某种意义上说,它是乱序的。
读取json文件需要花费n毫秒然后执行其代码,导致在初始执行主代码段之后显示该部分。