最近,在一次全栈开发人员面试中,我看到了一段被问到的代码。它包括创建一个Promise(候选人应该在其中实现)、传递一个resolve函数,以及链接2 then的。
我非常天真地尝试实现promise,只是为了让代码工作。创建了一个接受解析器函数的ctor,创建了一个接受回调并返回promise的Then函数,并简单地对解析器函数调用回调。
class MyPromise {
constructor(resolver) {
this.resolver = resolver;
}
then(callback) {
const result = new MyPromise(callback);
this.resolver(callback);
return result;
}
}
promise = new MyPromise(
(result) => {
setTimeout(result(2), 500);
});
promise.then(result => {
console.log(result);
return 2 * result;
}).then(result => console.log(result));
预期的结果是2,4-就像用真正的promise操作一样。但我得到了2,2。我很难弄清楚如何获取第一个“then”的返回值并传递它。
下面是创建promise类的缩短代码,
class MyPromise {
constructor(executor) {
this.callbacks = [];
const resolve = res => {
for (const { callback } of this.callbacks) {
callback(res);
}
};
executor(resolve);
}
then(callback) {
return new MyPromise((resolve) => {
const done = res => {
resolve(callback(res));
};
this.callbacks.push({ callback: done });
});
}
}
promise = new MyPromise((resolve) => {
setTimeout(() => resolve(2), 1000);
});
promise.then(result => {
console.log(result);
return 2 * result;
}).then(result => console.log(result));
我的循环视图滚动太慢了。当我通过触摸Recyclerview开始滚动时,它会滞后,但当从上方的视图开始滚动时不会滞后。我还禁用了recyclerview上的嵌套滚动。 这是我的布局: 这是一个滞后的视频。就像滚动跳过了一些布局。
本文向大家介绍如何简单的实现一个promise?相关面试题,主要包含被问及如何简单的实现一个promise?时的应答技巧和注意事项,需要的朋友参考一下 参考回答: 首先明确什么是promiseA+规范,参考规范的地址:primise A+规范 如何实现一个promise,参考我的文章: 实现一个完美符合Promise/A+规范的Promise 一般不会问的很详细,只要能写出上述文章中的v1.0版本
We had a little usability problem in CityDesk. 我们的CityDesk遇到了一些小的可用性问题。 Here was the problem: you could import files from the web using a menu command ("Import Web Page"). And you could import files f
本文向大家介绍简单实现异步编程promise模式,包括了简单实现异步编程promise模式的使用技巧和注意事项,需要的朋友参考一下 异步编程 javascript异步编程, web2.0时代比较热门的编程方式,我们平时码的时候也或多或少用到,最典型的就是异步ajax,发送异步请求,绑定回调函数,请求响应之后调用指定的回调函数,没有阻塞其他代码的执行。还有像setTimeout方法同样也是异步执行回
本文向大家介绍js使用Promise实现简单的Ajax缓存,包括了js使用Promise实现简单的Ajax缓存的使用技巧和注意事项,需要的朋友参考一下 业务场景 在不少业务场景下,我们需要实现简单的请求缓存(即某个请求只发起一次请求),例如上传 Token 的获取、获取配置的接口等。 这些接口可以通过 Promise 实现简单的缓存并能够控制更新,而不需要另外引入缓存层。 示范代码 用七牛上传作例
本文向大家介绍手写简单的jQuery雪花飘落效果实例,包括了手写简单的jQuery雪花飘落效果实例的使用技巧和注意事项,需要的朋友参考一下 前言 最近闲来无事,准备写个雪花飘落的效果,没有写太牛逼的特效,极大的简化了代码量,这样容易读取代码,用起来也很简单,对于那些小白简直是福利啊,简单易读易学。先直接上代码吧,然后再一一讲解,直接复制粘贴就可以拿来用了,改起来更是容易。 上面是代码,是不是很简单