Promise函数在Node.js中的使用

时间:2019-04-09 06:02:43

标签: node.js

无法理解promise函数,任何人都可以通过一个简单的示例来解释如何处理它。在不同的网站上尝试过,但感到困惑

2 个答案:

答案 0 :(得分:0)

Promise是创建Promise时不一定知道的值的代理。它允许您将处理程序与异步操作的最终成功值或失败原因相关联。这样一来,异步方法就可以像同步方法一样返回值:在将来的某个时候,异步方法将返回最终值,而不是最终值。

用简单的话说:“承诺是采取某种行动的用语,做出承诺的另一方可能会履行或拒绝它”。在履行的情况下,诺言得到解决,在另一种情况下,诺言被拒绝。

我们可以使用JavaScript创建一个promise,并将其作为即将发生的事实来描述一些动作。承诺是一种设计模式,用于消除不直观的回调的使用。

答案 1 :(得分:-1)

您可以通过以下示例来理解它:

 const request = require("request")

function doSomething(url){
   //return promise from here
   return new Promise(function(resolve, reject) {
    request.get(url, function(error, resp, body) {
        if (error) {
            reject(error);
        } else {
            resolve(JSON.parse(body));
        }
    })
  })
 }

function callDoSomething(){
//initialising a promise
let prom = doSomething(url)
//consume it 
prom.then(function(res) {
 console.log(res)
})
.catch(function(e){
 console.log(e.message)
})
}

callDoSomething()

您也可以申请Promise.all处理多重承诺:

let prom1 = doSomething(url1)
let prom2 = doSomething(url2)
let prom3 = doSomething(url3)

Promise.all([prom1,prom2,prom3])
.then(res =>{
   //expected output array
   console.log(res)
 })
.catch(e =>{
  console.log(e.message)
 })