在我看到的示例中,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以便可以完成有用的工作?是通过使用全局变量吗?
答案 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."));
});
}