Nat*_*hat 2 javascript asynchronous promise ecmascript-6
我已经明白Promise是一个特殊的对象,其中javascript帮助我们处理异步任务并捕获由它产生的错误.
func_returning_promise( )
.then((param)=>{do stuff with the param ; }
.catch((error) =>{console.log(error); }
Run Code Online (Sandbox Code Playgroud)
我怎么也不喜欢像这样使用的.then和.catch,所以我将Promise存储在一个变量中var myprom = func_returning_promise().
但是当我调用这样的"then"和"catch"方法时,根本不会处理错误并且不执行catch处理程序.
var myprom = func_returning_promise();
myprom.then((param)=> do stuff with param ) ;
myprom.catch((error)=> console.log(error)) ;
Run Code Online (Sandbox Code Playgroud)
为什么我仍然会出错并且为什么它不会执行catch处理程序?
它与方法semicolon ;结束时的put 有什么关系then吗?
这不是问题之前或之后的问题的重复
我的问题不是关于所提出的问题所涉及的所有问题的解释.
JLR*_*she 10
您的第一个和第二个代码段不相同.
在第一个中,.catch()将处理在处理程序中func_returning_promise() 或.then()处理程序中抛出的任何错误.
在第二个中,.catch()被链接到原始的承诺,所以它只会捕获投入的错误func_returning_promise().
为了实现无链的第一个例子相当于,你将不得不结果分配的.then一个变量,并呼吁catch在这:
var myprom = func_returning_promise();
var mysecondprom = myprom.then((param)=> do stuff with param ) ;
mysecondprom.catch((error)=> console.log(error)) ;
Run Code Online (Sandbox Code Playgroud)
承诺被设计为链接.那么为什么不链接它们?
| 归档时间: |
|
| 查看次数: |
116 次 |
| 最近记录: |