节点js值返回
我是节点js的初学者。 试图调用API和结果应该传递给另一个函数。 由于回调函数第二个函数[Task2()]在调用第一个函数[Task1()]后不久就会执行,我该如何处理节点js代码的异步行为。 我为了收益而搜索,但没有成功。 我提供了以下示例代码供您参考。 请提供您的意见/建议。
var result='';
function Task1(){ //2 --> Executing task1
Task_Id='';
var options = {
uri: 'http://url/post', //url to call
method: 'POST',
auth: {
'user': 'user1',
'pass': 'paswd1'
},
json: {
"key":"value"
}
};
function get_createdtaskId(options,callback){
var res='';
request(options, function (error, response, body) {
var data=JSON.stringify(body);
var parsedResponse = JSON.parse(data);
if (!error && response.statusCode == 200) {
res = parsedResponse.TaskID;
}
else{
console.log(error);
res=error;
}
callback(res);
});
}
//to call
Task_Id= get_createdtaskId(options, function(resp){
return resp;
});
return Task_Id;
}
result=Task1(); //1 -->initial function calling
Task2(result){ //3 -->use result from task1 as input parameter for function Task2
//do logic on result received from Task1
}
您必须为任务1添加一个回调函数,该函数完成后将被调用:
function Task1(callback){ //2 --> Executing task1
....
callback(result); //get the result this way
};
然后当你这样称呼它时
Task1(function(result){
Task2(result);
});
这是一个非常通用的方法。 请点击此处了解更多相关主题:
Node.js事件驱动
链接地址: http://www.djcxy.com/p/55495.html上一篇: node js value return
下一篇: Catching All Promise Rejections in an Async Function in JavaScript