鍍金池/ 問答/HTML/ javascript電話面試的幾個(gè)問題,求解?

javascript電話面試的幾個(gè)問題,求解?

1:有三個(gè)接口,第三個(gè)接口需要等待前兩個(gè)接口返回的結(jié)果,該如何做?
2:let和const的區(qū)別,const只能定義常量嗎?

回答
編輯回答
墻頭草

回調(diào)版本

a.call(function(){
    b.call(function(){
        c.call(function(){
        });   
    });
});

abc分別對(duì)應(yīng)接口1,2,3

promise版本

const aPromise = function() {
    return new Promise((resolve,rejct)=>{
        a.call(e=>e?reject(e):resolve(e));
    });
};

其他兩個(gè)類似。調(diào)用

Promise.all([aPromise,bPromise],function(a,b){
    c.call();
});

async/await版本

await aPromise();
await bPromise();
c.call();
  1. let定義的對(duì)象可以被重新賦值,const定義的對(duì)象不可以重新賦值。不要求只定義常量,只要引用不變.
2017年2月5日 00:45
編輯回答
膽怯

最直接想到的就是promise的all了,
其次就是回調(diào)嵌套,B鉗在A的回調(diào)里面,C嵌到B的回調(diào)里面。

一般來說let定義變量,const定義常量
let定義的變量可以更新值,const不行

此外const可以定義很多東西,只要不改變主體就行了吧

2017年5月24日 01:52
編輯回答
失心人

第一個(gè)問題:
1、使用回掉函數(shù)。
2、使用 promise 。
3、使用 async/await 。

第二個(gè)問題:
let 和 const 的主要區(qū)別是 const 定義變量的值不能被改變。
當(dāng) const 的值是一個(gè)地址指向某個(gè)對(duì)象時(shí),對(duì)象可以改變,因?yàn)槠涞刂分挡⑽锤淖儭?/p>

2018年9月8日 06:27
編輯回答
青瓷

補(bǔ)充下第一個(gè)問題,也可以使用async await ,手機(jī)不好碼字,占個(gè)坑

2017年2月27日 20:47