jspromise源码(js promise源码)
本文目录一览:
- 1、JS Promise 同步和异步代码执行的区别
- 2、哪些JavaScript 框架的源代码最值得阅读和学习
- 3、js中promise到底怎么用
- 4、什么是 nodejs promise
- 5、js中promise哪里有问题?
JS Promise 同步和异步代码执行的区别
同步的话,必须这个操作完了才会执行下一步,在等待期间浏览器会挂起不能执行任何接下来的js代码;异步则是【告诉】浏览器去做,【告诉】是一瞬间的事情,然后就继续执行下一步了,等到结果返回来了,浏览器会通知js执行相应的回调。
哪些JavaScript 框架的源代码最值得阅读和学习
推荐顺序:
underscore.js:一个JavaScript实用库,提供了一整套工具方法,github上有带注释的源码,一千多行。学习一下封装那些常用api的最佳实践。
zepto.js:jquery的移动版?源码也不多
backbone.js: 两千多行的MVC框架,在阅读angular源码之前先阅读一个经典而轻量的backbone吧
这三个是开始阅读源码比较推荐的,除此之外可以看一些UI框架,一些经典轮子之类的,比如阅读fastclick这种,学习一波手势与事件
js中promise到底怎么用
我举个生活中的例子吧,比如说你去麦当劳买吃的,你下订单后,会给你一个小纸条,这个小纸条相当于你和麦当劳之间的约定,这个小纸条也可以理解为你所定的餐的一个占位符。等麦当劳饭做好了的时候,会吧饭送到你面前,并且把小纸条收走。
这个如果在代码中的话,就意味着,你在执行代码的时候,可能会在未来某个时刻才会取到值(异步),等在值取到以后,会进行一些相应的处理,比如说ajax,这实际上就是promise的一个典型的应用场景。
我刚刚只是说了promise的一个大的应用场景,我觉得只要能把握住这个,具体的API就可以了。
假如你想对它的使用有一个更深入的了解的话,我还可以推荐你一个小文章: Javascript基础之-Promise
加油
什么是 nodejs promise
promise是一个异步编程的抽象,它是一个返回值或抛出exception的代理对象,一般promise对象都有一个then方法,这个then方法是我们如何获得返回值(成功实现承诺的结果值,称为fulfillment)或抛出exception(拒绝承诺的理由,称为rejection),then是用两个可选的回调作为参数,我们可以称为onFulfilled和OnRejected:
var promise = doSomethingAync()
promise.then(onFulfilled, onRejected)
当这个promise被解决了,也就是异步过程完成后,onFulfilled和OnRejected中任何一个将被调用,
因此,一个promise有下面三个不同状态:
pending待承诺 - promise初始状态
fulfilled实现承诺 - 一个承诺成功实现状态
rejected拒绝承诺 - 一个承诺失败的状态
js中promise哪里有问题?
原因在于setTimeout是只执行一次的,所以要想再次执行,必须重新生成一个实例。下面是我修改后的代码,测试通过:
var waitSecond=function(){
return new Promise(function(resolve,reject){
setTimeout(resolve,1000);
});
}
waitSecond().then(function(){
console.log("hello");
return new waitSecond;
}).then(function(){
console.log("Hi");
});