这个是在学习promise实现过程中找到的一份资料
在实现promise内部的resolve和reject方法时候,注意到这两个函数内的代码都被settimeout包起来了,讲解说了一句 为了保证函数执行顺序
不太清楚这样做的原因,是保证什么函数执行的先后顺序?
为什么resolve和reject里的代码要异步执行?
谢谢了!
这个是在学习promise实现过程中找到的一份资料
在实现promise内部的resolve和reject方法时候,注意到这两个函数内的代码都被settimeout包起来了,讲解说了一句 为了保证函数执行顺序
不太清楚这样做的原因,是保证什么函数执行的先后顺序?
为什么resolve和reject里的代码要异步执行?
谢谢了!
你应该了解下Promise/A+规范,然后再换个源码阅读,如es6-promise。
你看的资料写法可能有问题(为了严谨性,只说可能,因为我不清楚具体资料内容),最起码resolve和reject里需要返回值才能链式调用
13 回答12.8k 阅读
7 回答2k 阅读
3 回答1.1k 阅读✓ 已解决
2 回答1.2k 阅读✓ 已解决
6 回答928 阅读✓ 已解决
6 回答1.1k 阅读
2 回答1.3k 阅读✓ 已解决
为什么要reslove和reject要异步执行的原因,可以换个角度来看,同步执行reslove和reject会有什么问题,假如有代码:
虽然以上代码再同步函数中调用会存在问题,但是再异步函数中调用resolve和reject是正常的,所以总结如下:reject和resolve之所以使用异步执行回调,是为了兼容 【异步场景】 和 【同步场景】下的应用。