📅  最后修改于: 2020-10-27 01:36:42             🧑  作者: Mango
乍看之下,JavaScript中的Promise看起来可能很复杂,但是实际上,它非常简单,而且不是火箭科学。在JavaScript中,一个承诺就像您在现实生活中做出的表示要致力于做某事的承诺一样。
例如,我保证在数学上取得好成绩,然后这个承诺有两个结果,要么实现(或解决),要么不实现(或被拒绝)。因此,如果我获得好成绩,则承诺得以解决,但如果我没有获得好成绩,则由于无法履行承诺而无法解决。
但是,在JavaScript中,promise具有三个结果: Promise得到解决,被拒绝或处于待处理状态,这意味着Promise尚未完成,但是可能会在一段时间后完成,因此它直到现在都不会被拒绝,并且处于待处理状态。
让我们看另一个示例,以了解JavaScript中Promise的概念:
假设,如果我们成功从服务器获取了数据,我们已经请求使用Promise从服务器中获取一些数据,则Promise将被视为已成功解析(或已完成),但是如果没有成功来自服务器的数据由于任何原因,这意味着Promise被拒绝或未完成。
JavaScript中的Promise语法
Let p= new Promise((resolve,rejected)) =>{
Instructions
}
让我们看看如何在JavaScript中创建和使用Promise?
首先,我们必须使用构造函数创建一个promise:
constPromise =newPromise
正如我们已经看到的Promise语法一样,Promise有两个参数:
constPromise =newPromise((resolve, reject)=>{
Condition
});
这是条件的最后一部分。如果满足条件,则承诺将得到解决;否则,承诺将被拒绝。
constPromise =newPromise((resolve, reject)=>{
let condition;
if(condition is met){
resolve('Promise is resolved successfully.');
}else{
reject('Promise is rejected');
}
});
这是我们的第一个承诺。现在使用它。
then()方法
正如我们上面已经讨论过的,对于一个诺言,有两种主要情况:一种是解决的,另一种是拒绝的。解决Promise后,接下来将发生某些事情,具体取决于我们要对解决的Promise进行的处理。
myPromise.then();
这个“ .then();”仅当Promise被解决(成功完成)时才调用method方法,并且将显示我们传递的内容。例如,我们可以在其中为用户传递一条消息。
myPromise.then((message)=>{
console.log(message);
});
.catch();方法
当承诺被拒绝(或失败)时,将调用此方法。我们还可以在其中为用户传递一条消息。我们可以在“ then()”方法之后编写catch方法。
myPromise.then((message)=>{
console.log(message);
}).catch((message)=>{
console.log(message);
});
因此,如果Promise得到解决,则将在屏幕上通过“ .then()”方法传递消息,但是如果Promise被拒绝,则将在“ .catch()”中传递消息。方法。这在两种情况下都意味着:我们会在屏幕上收到不同的消息。
通过以下示例,我们可以了解如何更轻松地实现承诺:
程序
程序说明
在上面的程序中,我们使用构造函数创建了一个promise,并传递了两个参数resolve,reject。在Promise定义中,我们还创建了一个变量“ condition”,并为其分配了值9。另外,使用(if)语句,我们检查了变量的值。如果满足条件,则执行“ if”部分并承诺得到解决(也将调用then()方法),如果不满足条件,则将执行else部分,并且Promise被拒绝(然后catch()将被执行)。
输出量
要在控制台中查看输出,请按“ f12″键在Web浏览器中打开检查模式。
注意:如果要执行Promise的else部分,可以通过将条件更改为true或false来修改程序代码。