我想让回调在执行下一行代码之前等待响应。
我确实尝试过先进行回调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
}
答案 0 :(得分:0)
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);
}
});
});
}
答案 1 :(得分:0)
创建一个函数并在获得响应后执行它
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)
}
答案 2 :(得分:0)
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
}