嗨,他有一个简单的功能,可以取一个数字并进行验证
var verifyNumber =(phoneNumber)=>{
//Number Verification
cb.validatePhone(phoneNumber,'sms',(err,data)=>{
if(err){
console.log(`You got an error `);
}
console,log('Code send');
return data
})
}
verifyNumber('***********');
但是问题是我想要在第二个参数(数据)中返回cb.validatePhone()的响应
当我返回时,它给了我“未定义” :( 这样就可以获取作为对象的数据。
答案 0 :(得分:1)
有多种方法可以从异步操作中返回数据。
以下是使用回调的示例:
function verifyNumber(phoneNumber, callback) {
try {
cb.validatePhone(phoneNumber, 'sms', (err, data) => {
if (err) throw new Error('You got an error');
callback(data);
});
} catch (e) {
console.log(e);
}
}
verifyNumber('***********', (data) => console.log(data));
这里是一个使用promise
的人。
function verifyNumber(phoneNumber) {
return new Promise((resolve, reject) => {
try {
cb.validatePhone(phoneNumber, 'sms', (err, data) => {
if (err) throw new Error('You got an error');
resolve(data);
});
} catch (e) {
console.log(e);
}
});
}
verifyNumber('***********').then(data => console.log(data));