第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

nodejs如何獲得從異步回調的返回值?

nodejs如何獲得從異步回調的返回值?

楊__羊羊 2018-09-04 13:17:19
    users.find({uname: this.uname, passwd: this.passwd}, (err, docs) => {        if (docs.length === 0) {            return true;        } else {            return false;        }    });        如題 想在數(shù)據(jù)庫中匹配帳號和密碼 然后返回一個值    但是顯然捕捉不到 能否捕捉到異步執(zhí)行完后的值    或者 同步怎么寫??
查看完整描述

1 回答

?
Qyouu

TA貢獻1786條經(jīng)驗 獲得超11個贊

  • 沒搞明白為啥要捕捉異步執(zhí)行完后的值,你把你需要用到這個執(zhí)行結果的業(yè)務邏輯,放到callback里面不久可以了么?

  • Promise能不能幫到你呢?

const find = (uname, passwd) => new Promise((resolve, reject) => {
  users.find({ uname, passwd }, (err, docs) => {    if(err) return reject(err)    if(docs.length === 0) return resolve(true)
    resolve(false)
  })
})

find(this.uname, this.passwd).then(result => {    // 獲取到異步執(zhí)行完后的值的業(yè)務代碼
    console.log(result)
}).catch(err => console.error(err))
  • async/await Promise的優(yōu)雅版

const isExist = async (uname, passwd) => {    try{        const result = await find({ uname, passwd }) // result is true of false
        // 獲取到異步執(zhí)行后的代碼的業(yè)務邏輯 
    } catch(e) {
        console.error(e)
    }     
}
  • Generator

  • EventEmitter

寫不下去了,我還是沒搞懂你為啥要捕捉異步執(zhí)行完后的值,那我為啥還要回答呢,哎??!好吧!理解不對的話就忽略。


查看完整回答
反對 回復 2018-10-16
  • 慕數(shù)據(jù)7393940
    慕數(shù)據(jù)7393940
    如果是要返回業(yè)務代碼的result該怎么辦呢?這個始終還是異步的,在find函數(shù)外得不到結果?。╮eturn result;在find外面的取不到值的)。大神求教。
  • 1 回答
  • 0 關注
  • 2949 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網(wǎng)微信公眾號