NodeJS的Promise的用法

javascript的特点是异步,Javascript不能等待,如果你实现某件需要等待的事情,你不能停在那里一直等待结果回来,相反,底线是使用回调callback:你定义一个函数,这个函数只有等到结果可用时才能被调用。

 这种回调模型对于好的代码组织是没有问题的,但是也可以通过从原始回调切换到promise解决很多问题,将promise看成是一个标准的数据容器,这样会简化你的代码组织,可以成为基于promise的架构。

 

什么是Promise?

 一个promise是一个带有".then()"方法的对象,其代表的是一个操作的结果可能还没有或不知道,无论谁访问这个对象,都能够使用".then()"方法加入回调等待操作出现成功结果或失败时的提醒通知,

 

resolve() 中可以放置一个参数用于向下一个 then 传递一个值,then 中的函数也可以返回一个值传递给 then。但是,如果 then 中返回的是一个 Promise 对象,那么下一个 then 将相当于对这个返回的 Promise 进行操作,这一点从刚才的计时器的例子中可以看出来。

 

reject() 参数中一般会传递一个异常给之后的 catch 函数用于处理异常。

 

//定义有个Promise 
const myPromise = new Promise(function (resolve, reject) { setTimeout(function () { //模拟延迟两秒返回 12312 resolve("12312"); }, 2000); // reject(Error("返回错误")) //错误时返回 reject的值 });

 

posted @ 2022-03-04 13:40  浅绿色i  阅读(444)  评论(0编辑  收藏  举报