Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/457.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_Javascript_Request - Fatal编程技术网

如何在执行方法之前确保请求函数已完成-javascript

如何在执行方法之前确保请求函数已完成-javascript,javascript,request,Javascript,Request,运行时,下面显示的代码记录“[]”。我认为这是因为在调用console.log方法时请求函数还没有完成 var urlArray = [] request('http://www.example.com', function (error, response, body) { urlArray.push("example.com") } console.log(urlArray) 如何设置条件以确保请求函数完成。伪代码是: if request function is complete{

运行时,下面显示的代码记录“[]”。我认为这是因为在调用console.log方法时请求函数还没有完成

var urlArray = []
request('http://www.example.com', function (error, response, body) {
urlArray.push("example.com")
}
console.log(urlArray)
如何设置条件以确保请求函数完成。伪代码是:

if request function is complete{
  console.log(urlArray)
}

如果这不是最好的方法,那是什么?

首先,如果以非异步方式运行,则请求行后面的行将在请求完成时执行,但不建议这样做。其次,运行async时,通常会收到回调或承诺,具体取决于执行请求所使用的库,即使使用纯JS,也可以选择为错误和成功状态设置回调,只有在请求收到响应后才会执行回调。 我建议阅读一些关于ajax和承诺的内容


看看您提供的代码,这似乎只是一个概念或伪代码,它永远不会运行并抛出所有类型的错误和异常。

有什么原因不能简单地将console.log放入回调中?