🔥جمعه سیاه در راکت با (( ۷۰ درصد )) تخفیف! این فرصت دیگه تکرار نمیشه
مشاهده دورههاسلام وقت بخیر
من یه تابع به نام getUserدارم که اطلاعات یک کاربر رو از دیتابیس میگیره و پرامیس برمیگردونه
یه تابع دیگه هم به نام getuserAsync دارم که برای راحتی کار اینو نوشتم که همین کار رو به صورت async انجام میده . در واقع این تابع از تابع قبلی (getUser)استفاده میکنه. توابع رو تا اینحا براتون میزارم :
static getUser = (chatId) => {
return new Promise((resolve, reject) => {
mongo.getConnection()
.then((db) => {
db.collection("users")
.findOne({chat_id : chatId}, (err, data) => {
if (err)
return reject(err)
return resolve(data)
})
})
.catch(reject)
})
}
static getUserAsync = async (chatId) => {
return await this.getUser(chatId)
}
حالا جایی که میخوام از تابع getuserAsync استفاده کنم داره یه همچین چیزی رو برمیگردونه :
Promise { <pending> }
در واقع اینجا از getUserAsync استفاده کردم که خروجی بالا توی کنسول لاگ شده :
let user = UserRepository.getUserAsync(chatId)
console.log(user)
مشکل کجاست؟
میتونی اینجوری بنویسی که زیباتر بشه
static getUser = async (chatId) => {
let db=await mongo.getConnection()
let user=await db.collection("users").findOne({chat_id : chatId});
if (!user)
//error
return user
}
@behzad.azizan1991
قسمت آخر رو به صورت زیر لاگ کنید ببینید جواب چی میشه :
UserRepository.getUserAsync(chatId).then(function(result) {
console.log(result)
})
درود بر شما در جای هم که میخواید از کد زیر استفاده کنید
let user = UserRepository.getUserAsync(chatId)
console.log(user)
باید از await برای getUserAsync بهره ببرید حتما یعنی
let user = await UserRepository.getUserAsync(chatId)
console.log(user)
یا به شکلی که دوستمون گفته عمل بفرمایید
UserRepository.getUserAsync(chatId).then(function(result) {
console.log(result)
})
@hesammousavi ممنون پس با این شرایط نیازی به ساخت متد getUserAsync نیست درسته؟ (نمونه کدی که گذاشتم رو مطالعه بفرمایید من یک متد به اسم getUser دارم و یک متد دیگه به اسم getUserAsync ۹) اینطور که من متوجه شدم نیازی به متد getUserAsync نیست دیگه
میتونی اینجوری بنویسی که زیباتر بشه
static getUser = async (chatId) => {
let db=await mongo.getConnection()
let user=await db.collection("users").findOne({chat_id : chatId});
if (!user)
//error
return user
}
آیا مایل به ارسال نوتیفیکیشن و اخبار از طرف راکت هستید ؟