节点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