0

ウォーターフォール関数が呼び出され、内部関数の 1 つがユーザー ドキュメントの配列を取得し、それらがユーザー自身であるか、ユーザーの友人であるかを検出しようとしています。これら2つのことに基づいて、「私」が真/偽であり、「友人」が文書/偽であるユーザー文書をそれぞれ返したいと思います。ドキュメント自体は真実ではありません。ただし、得られる結果は正しくありません。

コードは次のとおりです。

function(users, callback) {
   async.mapSeries([users], function(user, next) {
        Friend.findOne({userId: req.signedCookies.userid, friend_id: user}, function(err, friend) {
            var me = false;
            if (user.id === req.signedCookies.userid) {
                console.log('me check');
                me = true;
            }
            if (friend === undefined) {
                friend = false;
            }
            var object = {'user': user, 'friend': friend, 'me': me};
            //searchResults.push(object);
            next(err, object);
        });
    }, function(err, searchResults) {
        console.log(searchResults);
        callback(null, searchResults);
    });
}

これは私が得ている結果です:

[ { user:
     [ { firstName: 'test1',
         lastName: 'test1s',
         email: 'test1@gmail.com',
         emailTrue: 'test1@gmail.com',
         firstNameTrue: 'Test1',
         lastNameTrue: 'teST1s',
         password: '$2a$10$irIz5rVSFwGFVjzXqAqdxuxa8wAFoV99FulXykt
',
         phone: 2738483282,
         birthday: Tue Aug 22 823 20:00:00 GMT-0400 (Eastern Dayli
         email_confirmed: true,
         date_created: Thu Aug 15 2013 14:54:17 GMT-0400 (Eastern
,
         _id: 520d23d9367604cc0d000001,
         __v: 0,
         socialAccounts: [],
         phoneList: [],
         emailList: [] },
       { firstName: 'test1',
         lastName: 'test1ss',
         email: 'test1s@gmail.com',
         emailTrue: 'test1s@gmail.com',
         firstNameTrue: 'test1',
         lastNameTrue: 'test1ss',
         password: '$2a$10$kaWYHkg68c4Uti6/DlNVR.N0Ojzo.RnsQ6BARTd
',
         phone: 888439348,
         birthday: Mon Aug 30 94 20:00:00 GMT-0400 (Eastern Daylig
         email_confirmed: true,
         date_created: Thu Aug 15 2013 15:11:19 GMT-0400 (Eastern
,
         _id: 520d27d7a767bdbc1c000001,
         __v: 0,
         socialAccounts: [],
         phoneList: [],
         emailList: [] } ],
    friend: false,
    me: false } ]
4

1 に答える 1

1

配列ブラケットでラップする代わりに、呼び出しにusers直接渡します。async.mapSeries

async.mapSeries(users, function(user, next) {
于 2013-08-15T21:35:47.533 に答える