JavaScript 异步函数处理
JavaScript Asynchronous Function Process
fetchAssets( ) 是一个异步 JavaScript 函数。有人可以向我解释一下下面的代码是如何工作的吗?
var x = 5;
this.fetchAssets()
.then(() => {navigate('Auth');})
.catch(error => console.error(`Error while loading: ${error.stack}`));
var y = 6;
是这样的吗?:
1: var x = 5 被执行。完成后,#2 开始
2:调用了 fetchAssets( )
3: var y = 6 被执行
4:每当fetchAssets returns,我们导航到'Auth'。
或者我们是否等待 fetchAssets( ) 完成后再执行 var y = 6
?
您的猜测完全正确。您可以通过添加一些 console.log
并查看它们记录的顺序来测试您的假设。
不完全是。这是一个更准确的版本:
var x = 5
被执行
fetchAssets()
被称为
.then()
在 fetchAssets
的 return 值上调用
.catch()
在 .then
的 return 值上调用
var y = 6
执行
- 每当由
fetchAssets
编辑的承诺 return 被解决时,navigate()
就会被调用
特别是这部分要么写错了,要么表达得不好:
Whenever fetchAssets returns, we navigate to 'Auth'.
fetchAssets
return 秒后立即分配给 y
。功能始终 return 同步。
fetchAssets( ) 是一个异步 JavaScript 函数。有人可以向我解释一下下面的代码是如何工作的吗?
var x = 5;
this.fetchAssets()
.then(() => {navigate('Auth');})
.catch(error => console.error(`Error while loading: ${error.stack}`));
var y = 6;
是这样的吗?:
1: var x = 5 被执行。完成后,#2 开始
2:调用了 fetchAssets( )
3: var y = 6 被执行
4:每当fetchAssets returns,我们导航到'Auth'。
或者我们是否等待 fetchAssets( ) 完成后再执行 var y = 6
?
您的猜测完全正确。您可以通过添加一些 console.log
并查看它们记录的顺序来测试您的假设。
不完全是。这是一个更准确的版本:
var x = 5
被执行fetchAssets()
被称为.then()
在fetchAssets
的 return 值上调用
.catch()
在.then
的 return 值上调用
var y = 6
执行- 每当由
fetchAssets
编辑的承诺 return 被解决时,navigate()
就会被调用
特别是这部分要么写错了,要么表达得不好:
Whenever fetchAssets returns, we navigate to 'Auth'.
fetchAssets
return 秒后立即分配给 y
。功能始终 return 同步。