js笔试题:请使用Promise封装下面的异步方法request,使之可以同步调用

//request的用法如下
request(url,(response) => {
  console.log(response);
});

//请使用request实现同步方法requestSync(url)
//const response = await requestSync(url);

function requestSync(url) {

}
阅读 3.8k
4 个回答
function requestSync(url){
        return new Promise((resolve,reject)=>{
            request(url,(response) => {
              resolve(response);
            });
        });
    }
    
    
    可以这样调用 
    requestSync('url').then(res => {
        console.log(res)
    })
    
    当然如果为了好看可以用async 和 await
    async dosomething(){
     const res =await requestSync(url)
     console.log(res)
    }
function requestSync(url) {
    return new Promise(function(resolve) {
        request(url, (response) => {
            resolve(response);
        });
    });
}

这样,只要函数返回 Promise 对象就可以 await 调用,如:

const res = await requestSync(url);
console.info(res);
function requestAsync(url){
    return new Promise(res => {
        request(url, res);
    });
}
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题