Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/412.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何告诉JS在返回外部函数的值之前等待嵌套异步函数完成?_Javascript_Node.js_Asynchronous_Async Await_Async.js - Fatal编程技术网

Javascript 如何告诉JS在返回外部函数的值之前等待嵌套异步函数完成?

Javascript 如何告诉JS在返回外部函数的值之前等待嵌套异步函数完成?,javascript,node.js,asynchronous,async-await,async.js,Javascript,Node.js,Asynchronous,Async Await,Async.js,我在非异步函数中有一个嵌套的异步函数。我希望异步函数的返回值是非异步函数的返回值,因此我希望在非异步函数返回其值之前等待异步函数完成。但目前,我想不出任何好办法来做这件事。代码片段如下所示: function ValidateAccessCode(phoneNumber, accessCode) { var message=null firebase.database().ref().child("phoneNumber").orderByChild('rec

我在非异步函数中有一个嵌套的异步函数。我希望异步函数的返回值是非异步函数的返回值,因此我希望在非异步函数返回其值之前等待异步函数完成。但目前,我想不出任何好办法来做这件事。代码片段如下所示:

function ValidateAccessCode(phoneNumber, accessCode) { 
  var message=null 
  
 firebase.database().ref().child("phoneNumber").orderByChild('recipient').equalTo(phoneNumber).on("value", function(data) {
    var list_phones=data.val()
    var keys=Object.keys(list_phones)
    phone_code=list_phones[keys[0]].access_code
    console.log("phone code is " + phone_code)
    if (phone_code == accessCode) { 
      message= {message: "Your number has been successfully verified!"} 
    }
    else { 
      message= {message: "Your access code is not correct. Please try again!"} 
    }
  })
  return message
}
谢谢大家的帮助