Javascript 覆盖变量值的多个请求

Javascript 覆盖变量值的多个请求,javascript,node.js,express,Javascript,Node.js,Express,我对nodejs相当陌生,我有一个场景,当用户点击一个端点时,我需要进行两次post调用。第一个API调用向我返回一个URL,我应该在第二个调用中使用该URL。下面是我编写的一个通用模块,用于执行这些post调用 // First call requester.post(options1).then(function(result1){ var options2 = { url: result1.url, req: req, res: re

我对nodejs相当陌生,我有一个场景,当用户点击一个端点时,我需要进行两次post调用。第一个API调用向我返回一个URL,我应该在第二个调用中使用该URL。下面是我编写的一个通用模块,用于执行这些post调用

// First call
requester.post(options1).then(function(result1){
    var options2 = {
        url: result1.url,
        req: req,
        res: res
    }
    ...
    // Second Call
    requestor.post(options2).then(function(result2) {
    })
}) 

var requestor = {
  post: function(options) {
    url = options.url;
    ...

    var deferred = q.defer();

    ...
    var post = request.post(url, data, function (error, response, body) {
      if (!error && response.statusCode == 200) {
        try {
          deferred.resolve(body);
        }
        catch(e) {
          deferred.reject(new Error('Request failed while processing request'));
        }
      } else {
        deferred.reject({code: code});
      }
    })
    ...
    return deferred.promise;
  }
}

我的问题是,当我有两个请求以精确的微秒到达时,url变量被覆盖。当第一个请求的“第二次调用”仍在进行时(在我的情况下,最终超时),我的第二个请求的第二次调用将覆盖url变量。请建议我应该修复/更改什么

它正在覆盖
url
,因为
url
是一个全局变量

var requestor = {
 post: function(options) {
   url = options.url;
将上述代码段更改为

var requestor = {
 post: function(options) {
   var url = options.url;