如何将参数传递给承诺?

时间:2017-03-30 16:04:32

标签: javascript promise

在我看到的示例中,promise中的代码是静态的。一个例子:

var promise = new Promise(function (resolve,reject) {
  if (true)
    resolve("It is a success!")
  else
    reject(("It is a failure."));
});

promise.then(function (x) {
   alert(x);
}).catch(function (err) {
      alert("Error: " + err);
    });

如何将参数传递给promise以便可以完成有用的工作?是通过使用全局变量吗?

1 个答案:

答案 0 :(得分:2)

通常可以使用以下代码完成:

function getSomePromise(myVar) {
  var promise = new Promise(function (resolve,reject) {
    if (myVar)
      resolve("It is a success!")
    else
      reject(("It is a failure."));
  });
  return promise;
}

var variableToPass = true;
getSomePromise(variableToPass).then(function (x) {
  alert(x);
}).catch(function (err) {
  alert("Error: " + err);
});

<强> 更新

正如@AlonEitan建议的那样,您可以简化getSomePromise功能:

function getSomePromise(myVar) {
  return new Promise(function (resolve,reject) {
    if (myVar)
      resolve("It is a success!")
    else
      reject(("It is a failure."));
  });
}