如何使用JavaScript中的promise对象

JavaScript中promise是一个对象,表示异步处理的最终完成或失败,使用promise可以很容易的进行异步处理,promise对象还可以明确异步执行成功和失败时的过程,因此可以消除问题的原因。

promise对象

promise对象也可以执行并发异步处理,换句话说,可以按顺序执行多个异步处理,并在下一个处理中使用先前处理的结果。

JavaScript按顺序执行命令语句

立即学习“Java免费学习笔记(深入)”;

例如,下面有三种函数,如果处理被sample2函数延迟,则不处理sample3函数。

顺序执行的JavaScript程序的示例

nbsp;html>   var result = "正确。";var doSomething1 = function() {  console.log('处理没有出现问题1' + result);};var doSomething2 = function() {  console.log('出现错误 ' + result2);};var doSomething3 = function() {  console.log('处理没有出现问题 3' + result);};doSomething1();doSomething2();doSomething3();

登录后复制

运行结果如下所示

promise对象

JavaScript回调函数

与此相对应的,

与此相反,有些方法不会读入页面然后按顺序处理。

比如,读到页面后,过了5秒就可以执行了。

当页面加载并完成其他处理时,将在5秒后执行此操作。

页面读取5秒后执行的程序

代码如下

nbsp;html>   setTimeout(function() {  alert('刚刚过去了5秒!');}, 5000)

登录后复制

效果如下:5秒后将会显示如下页面

promise对象

这样,在完成某个进程后,回调相应的函数被称为回调,此外,这种功能称为回调功能。

回调函数与promise

如果有回调函数的话,则无法使用回调函数轻松解决异步处理等问题。

这是因为使用回调函数创建复杂的异步处理会导致代码非常复杂。

此外,回调函数用于接收异步执行的结果,其规范取决于每个库。

出现在那里的是“promise”。

通过使用promise,可以更简单地创建异步处理,并且也可以统一规范的接收结果。

使用环境

由于某些浏览器与promise不兼容,因此最好事先检查您的环境中是否有能够支持使用的浏览器。

 promise的作用

1.使用promise,可以保证在当前正在处理的JavaScript事件循环执行完成之前不会被调用。这使得能够实际地进行考虑顺序的处理。

2.使用promise,如果异步处理虽然完成但是失败后,利用.then注册回调也可以保证操作。换句话说,在完成当前正在处理的JavaScript事件循环的执行之前,不会进行调用。

3.使用.promise,.then可以多次实现。换句话说,保证可以按添加顺序独立地执行多个回调函数。

接下来我们就来看一下 promise的使用方法

使用以下语法描述Promise。

new Promise( function(resolve, reject) { ... } );

登录后复制

执行的顺序是

function(resolve, reject) { ... }

登录后复制

已被执行

new Promise

登录后复制

将被执行

function(resolve, reject)

登录后复制

处理成功时执行Resolve,处理失败时执行reject。

我们来看一个具体的示例

像回调函数一样,我们将在5秒后创建一个要处理的程序。

代码如下

nbsp;html>   function hidouki() {    return new Promise(function (resolve, reject) {        setTimeout(function () {            resolve('异步执行成功');        }, 5000);    });}hidouki().then(function (value) {  console.log(value);}).catch(function (error) {  console.log(error);});

登录后复制

执行结果

2345截图20181211163457.png

以上就是如何使用JavaScript中的promise对象的详细内容,更多请关注【创想鸟】其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至253000106@qq.com举报,一经查实,本站将立刻删除。

发布者:PHP中文网,转转请注明出处:https://www.chuangxiangniao.com/p/2735511.html

(0)
上一篇 2025年3月8日 01:16:10
下一篇 2025年3月8日 01:16:18

AD推荐 黄金广告位招租... 更多推荐

相关推荐

发表回复

登录后才能评论