陈年往事

文章 评论 浏览 30

陈年往事 2022-05-04 13:51:06
var arr = [ [1, 2, 2], [3, 4, 5, 5], [6, 7, 8, 9, [11, 12, [12, 13, [14] ] ] ], 10];
function flatten(arr) {

    while (arr.some(item => Array.isArray(item))) {
        arr = [].concat(...arr);
    }

    return arr;
}
Array.from(new Set(flatten(arr))).sort((a, b) => {
 return a - b
})

第 11 题:将数组扁平化并去除其中重复数据,最终得到一个升序且不重复的数组

陈年往事 2022-05-04 13:46:20
Promise.prototype.then = function(onResolved, onRejected) {
...
    if (self.state === 'resolved') {
        return new Promise(function(resolve, reject) {
            try {
                var x = onResolved(self.data);
                // 如果onResolved的返回值是一个Promise对象,直接取它的结果做为promise2的结果
                if (x instanceof Promise) x.then(resolve, reject);
                resolve(x);
...

这里var x = onResolved(self.data)直接把值算出来了, 异步不就变成同步了么, 计算onResolved一定会卡住的

剖析 Promise 内部结构,一步一步实现一个完整的、能通过所有 Test case 的 Promise 类

陈年往事 2022-05-04 06:00:14

我们逻辑一般都是这样写的
return new Promise (resolve, reject)->
Promise.resolve()
.then ()->
// if error
return Promise.reject(error)
.then ()->
// 不会执行了
.then ()->
.catch (error)->
reject(error)

从如何停掉 Promise 链说起

更多

推荐作者

櫻之舞

文章 0 评论 0

弥枳

文章 0 评论 0

m2429

文章 0 评论 0

野却迷人

文章 0 评论 0

我怀念的。

文章 0 评论 0

    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文