Javascript 与http Node.js异步

Javascript 与http Node.js异步,javascript,node.js,http,asynchronous,Javascript,Node.js,Http,Asynchronous,我有两个异步函数,一个给我一些url,另一个给我url中我需要的内容,另一个给我把我需要的内容写入文件,但它先写入文件,然后给我需要写入的内容,我怎样才能让他在我得到我需要的内容后写入文件。谢谢 var http=require('http'); var fs=需要('fs'); var list={}; var k=0; 函数getContent(url){ 变量选项={ 主持人:“www.exammple.org”, 路径:url } var request=http.request(选项

我有两个异步函数,一个给我一些url,另一个给我url中我需要的内容,另一个给我把我需要的内容写入文件,但它先写入文件,然后给我需要写入的内容,我怎样才能让他在我得到我需要的内容后写入文件。谢谢

var http=require('http');
var fs=需要('fs');
var list={};
var k=0;
函数getContent(url){
变量选项={
主持人:“www.exammple.org”,
路径:url
}
var request=http.request(选项、函数(res){
var数据=“”;
res.on('data',函数(块){
数据+=块;
});
res.on('end',function(){
列表[k]=数据;
k++;
});
});
请求.on('error',函数(e){
控制台日志(e.message);
});
request.end();
}
变量选项={
主持人:“www.example2.org”,
路径:'/mypath'
}
var request=http.request(选项、函数(res){
var数据=“”;
res.on('data',函数(块){
数据+=块;
});
res.on('end',function(){
///这里我从数据中得到一些URL
data=data.split(“;”);
用于(输入数据){
data=data.split('href=\“')[1]。split('“')[0];
getContent(数据[键]);
}
writeToFile();
}
});
});
请求.on('error',函数(e){
控制台日志(e.message);
});
函数writeToFile(){
writeFile(“file.txt”、JSON.stringify(列表)、函数(err){
如果(错误){
控制台日志(err);
}否则{
log(“文件已保存”);
}
});
}

request.end()
将writeToFile代码放在第二个回调中,所有代码都放在第一个回调中。或者命名函数并从侧面调用它们,或者使用承诺。谢谢,我使用了回调及其工作原理,谢谢。