簡體   English   中英

我想讓回調在執行下一行代碼之前等待響應

[英]I want to make the callback wait for the response before executing the next lines of code

我想讓回調在執行下一行代碼之前等待響應。 我確實嘗試使回調async然后await響應,但這不起作用。

async signup(parent, args, ctx, info) {

    const email = args.email;
    let res;
    verifier.verify(email, function(err, response) {
      if (err) console.log(err);
      else {
        res = response.success;
        console.log('before', res); // true or false
      }
    });
    console.log('after', res); // undefined
}
async function signup (parent, args) {
  return new Promise(function(resolve, reject) {
    verifier.verify(args.email, function(err, response) {
      if (err) { 
        reject(err);
      }
      else {
        resolve(response.success);
      }
    });
  });
}

創建一個function,得到響應后執行

async signup(parent, args, ctx, info) {

const email = args.email;
let res;
verifier.verify(email, function(err, response) {
  if (err) console.log(err);
  else {
    res = response.success;
    console.log('before', res); // true or false
    nextfun(res)
  }
});
}


function nextfun(res) {
 console.log(res)
}
 async signup(parent, args, ctx, info) {

    let res = await new Promise(function(resolve, reject) {
      verifier.verify(args.email, function(err, response) {
        if (err) {
          reject(err);
        } else {
          resolve(response.success);
        }
      });
    });

    console.log('after', res); // response.success

}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM