如何从Node.js中的内部函数获取值

时间:2018-12-01 15:06:00

标签: javascript node.js function

嗨,他有一个简单的功能,可以取一个数字并进行验证

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()的响应

当我返回时,它给了我“未定义” :(  这样就可以获取作为对象的数据。

1 个答案:

答案 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));