【问题标题】:function return value is undefined函数返回值未定义
【发布时间】:2016-02-14 20:14:29
【问题描述】:

我目前正在处理这个函数,返回值返回 undefined。我不确定是我对 javascript 的运作方式缺乏了解,还是需要一些棘手的巫术才能使我的代码正常工作。

var fs = require('fs');
var _ = require('underscore');


function eventValue(current, choice) {
	var output = [];

	if (current != null) {


		var json;
		fs.readFile('./json.json', 'utf8', function(err, data) {
			if (err) {
				throw err
			}

			json = JSON.parse(data);

			// filter by ID 
			var filtered = _.filter(json, {
				'ID': current
			});
			//console.log(filtered);

			// Get ID of Object
			var ID = _.pluck(filtered, 'ID');
			// Get Next value of object
			var NEXT = _.pluck(filtered, 'next');


			// get nested 'choice's 'next' value
			var collect = _.pluck(_.filter(
				_.flatten(
					_.pluck(filtered, 'choice')), {
					'choice': choice
				}), 'next');


			var stringID = String(ID);
			var stringNext = String(NEXT + collect);

			output = [stringID, stringNext];

			return output;

		})
	} else console.log("[[error]] please populate eventValue()");
};


var a = eventValue("001001A01B01");
console.log(a);

【问题讨论】:

标签: javascript node.js underscore.js return-value


【解决方案1】:

您正在尝试使用从异步函数回调返回的值,但您不能。

参考:How to get returned value by function with callback inside

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-03-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-04-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多