我正在尝试理解诺言的机制。具体来说,我们可以将什么传递给第一个参数(通常称为resolve)。例如:
function getFoo(url){
return new Promise(function(resolve, reject) {
let httpRequest = new XMLHttpRequest();
httpRequest.open('GET', url);
httpRequest.onload = function(){
if(httpRequest ===200) {resolve(httpRequest.responseText);
} else{ reject(Error(httpRequest.status));}
}
httpRequest.send();
});
}
我正在尝试构建自己的函数,该函数可以从promise中受益(所有示例都使用setTimeout或ajax代码)。任何人都可以提供一个使用promise的常规函数的简单示例(即使在这种情况下不需要该机制)也只是为了我可以构建自己的函数,该函数可以将某些东西传递给resolve回调?谢谢
例如:
function getFoo(param){
return new Promise(function(resolve, reject) {
????myFoo () { ...return...}
resolve(myFoo);
} else{ reject(???);}
}
});
}
let url='your url';
getFoo(url).then(responseText=>{
console.log(responseText);
}).catch(err=>{
console.log(err);
})
您可以使用xhr函数定义,也可以仅使用以下内容作为定义来检出它。
function getFoo(url){
return new Promise(function(resolve, reject) {
setTimeout(()=>{
resolve('hello');
},3000)
});
}