从函数返回结果

时间:2016-12-16 20:58:35

标签: javascript

我有一个函数使用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

1 个答案:

答案 0 :(得分:0)

这只是异步行为的本质。从某种意义上说,它是乱序的。

读取json文件需要花费n毫秒然后执行其代码,导致在初始执行主代码段之后显示该部分。