Redis
 sql >> Cơ Sở Dữ Liệu >  >> NoSQL >> Redis

Trả về giá trị từ hàm không đồng bộ node.js

Nếu client.exists trả về lời hứa, mã tương tự có thể được viết như sau:

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;
      });

  }

Nếu client.exists chỉ chấp nhận gọi lại, sau đó mã có thể được viết là:

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;
      });

  }

Trong phiên bản thứ hai, hãy lưu ý rằng tôi đã bọc client.exists gọi vào một hàm không đồng bộ và được gọi bằng await từ khóa.




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Làm cách nào để xả redis db khỏi python redis?

  2. Redis lính gác trong cùng một máy chủ như chủ / nô lệ?

  3. Sử dụng redis để tạo cuộc trò chuyện thời gian thực với socket.io và NodeJs

  4. Làm cách nào để kết nối với một phiên bản cụm Docker Redis bằng jedis cho Java?

  5. Đóng gói Unicode từ redis