没有异步代码的承诺示例?

问题描述 投票:-1回答:1

我正在尝试理解诺言的机制。具体来说,我们可以将什么传递给第一个参数(通常称为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(???);}
        }
    });
}
javascript promise callback
1个回答
0
投票
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)
    });
}

open in codepen

© www.soinside.com 2019 - 2024. All rights reserved.