JavaScript系列-Promise

174 阅读2分钟

面试了许多求职者,很多求职者只知其然,而不知所以然,写此文章为广大前端小伙伴指引迷津。纯干货!纯干货!纯干货!

目录

promise

什么是promise?

答:是异步编程的一种解决方案,比传统的异步解决方案更合理、更强大。

promise的作用?

答:解决地狱回调。

promise的实现原理?

答:把回调封装在了内部,使用上一直通过 then 方法的链式调用,使得多层的回调嵌套看起来变成了同一层的,书写上以及理解上会更直观和简洁一些。

promise的使用场景?

答:异步调用、配合async/await变成同步任务。promise.all:等所有的执行完返回结果。promise.race:哪个先执行完,就返回它的结果,其它结果抛弃。

promise的弊端?

答:无法取消Promise,一旦新建它就会立即执行,无法中途取消;如果不设置回调函数,promise内部抛出的错误,不会反应到外部;当处于pending状态时,无法得知目前进展到哪一个阶段。

promise的笔试题?
const first = () => (new Promise((resolve, reject) => {
    console.log(3);
    let p = new Promise((resolve, reject) => {
        console.log(7);
        setTimeout(() => {
            console.log(5);
            resolve(6);
        }, 0)
        resolve(1);
    });
    resolve(2);
    p.then((arg) => {
        console.log(arg);
    });

}));

first().then((arg) => {
    console.log(arg);
});
console.log(4);
答案:3 7 4 1 2 5
面试大白话

答:首先,Promise是异步编程的一种解决方案。其主要目的也是为了解决地狱回调。它的原理就是把回调封装在了内部,通过 then 方法的链式调用。我们项目里面一般就是用来对异步调用的一个封装以及配合async/await变成同步一起使用。不过Promise也有弊端,一旦新建它就会立即执行,无法中途取消。

小白也是新手面试官,欢迎领导莅临指导工作,提出建议,小白不胜感激,不喜勿喷,点赞收藏随机送程序媛小姐姐一枚哦!!!