无法理解promise函数,任何人都可以通过一个简单的示例来解释如何处理它。在不同的网站上尝试过,但感到困惑
答案 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)
})