Javascript

Node.js与Promise

本文主要是介绍Node.js与Promise,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

什么是Promise

简单来讲,promise是ES6一个API、构造函数,也是一种规范,更是一种·解决callcack深层嵌套·的方案,还是一种带有then方法支持链式操作的框架.

使用Promise的好处

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

那么为什么这样做好处优于回调呢?标准的回调模式在我们处理请求时需要同时提供回调函数:

request(url, function(error, response) { 
  // handle success or error.
});
doSomethingElse(); 

很不幸,这段代码意味着这个request函数并不知道它自己什么时候能够完成,当然也没有必要,我们最终通过回调传递结果。这会导致多个回调形成了嵌套回调,或者称为回调陷阱。

queryTheDatabase(query, function(error, result) { 
  request(url, function(error, response) {
    doSomethingElse(response, function(error, result) {
      doAnotherThing(result, function(error, result) {
        ...
      });
    });
  });
});

Promise能够解决这种问题,允许低层代码创建一个request然后返回一个对象,其代表着未完成的操作,让调用者去决定应该加入什么回调。 因为then返回一个promise,它意味着promise能够被chain串行链条花,这样能避免回调地狱:

//by zhengkai.blog.csdn.net
queryTheDatabase()
	.then(request)
	.then(doSomethingElse)
	.then(doAnotherThing)
	.then(...)
这篇关于Node.js与Promise的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!