4
function add(post)
{
    var word = new KeyWord({ keyword: post.keyword});    
    word.save(function (err, word) 
    {
        if(err)
        {
            if(err.code==11000)
                return post.keyword + ' is already added.';
        }
        else
            return 'Added : ' + post.keyword;
    });
}

add 関数の戻り値を読み取ろうとすると、何も返されません。
また、メッセージを変数に入れて、外部からそれを返そうとすると、null値も返されます。

4

1 に答える 1

9

簡単に言えば、できません。このような関数から値を取得するには、コールバックを使用する必要があります。

function add(post, callback) {
  var word = new KeyWord({keyword: post.keyword});    
  word.save(function(err, word) {
    if (err) {
      if (err.code==11000) callback(post.keyword + ' is already added.');
      else callback('Added : ' + post.keyword);
    }
  });
}

次に、次のように関数を使用します。

add(post, function(result) {
  // return value is here
}
于 2013-10-18T05:30:03.523 に答える