sql >> データベース >  >> NoSQL >> Redis

非同期関数node.jsからの戻り値

    client.existsの場合 約束を返します。同じコードを次のように書くことができます:

    empId: async (obj, params, ctx, resolverInfo) => {
    
        const exists = await client.exists(obj.empId);
    
        if (exists === 1) {
          return getAsync(obj.empId);
        }
    
        return await db.one('SELECT * FROM iuidtest WHERE empid = $1', [obj.empId])
          .then(iuidtest => {
            return iuidtest.empid;
          });
    
      }
    

    client.existsの場合 コールバックのみを受け入れる場合、コードは次のように記述できます:

    empId: async (obj, params, ctx, resolverInfo) => {
    
        async function empIdExists(empId) {
    
          return new Promise(function resolver(resolve, reject) {
    
            client.exists(obj.empId, function(err, reply) {
    
              if (err) {
                reject(err);
                return;
              }
    
              if (reply == 1) {
                resolve(1);
                return;
              } else {
                resolve(0);
                return;
    
              }
    
            })
    
          });
    
        }
    
        const exists = await empIdExists(obj.empId);
    
        if (exists === 1) {
          return getAsync(obj.empId);
        }
    
        return await db.one('SELECT * FROM iuidtest WHERE empid = $1', [obj.empId])
          .then(iuidtest => {
            return iuidtest.empid;
          });
    
      }
    

    2番目のバージョンでは、client.existsをラップしていることに注意してください。 非同期関数を呼び出し、awaitを使用して呼び出されます キーワード。




    1. MongoDB集約パイプラインは、最初の一致ステップ後に遅くなります

    2. mongodbを使用したマングースは、保存されたオブジェクトを返す方法を教えてください。

    3. mongo.lockファイルの用途は何ですか?

    4. MongoDB:同じドキュメントのデータを使用してドキュメントを更新する