【发布时间】:2014-01-21 20:49:40
【问题描述】:
如果我有:
fetched_user.settings = null;
fetched_user.settings = JSON.stringify(settings);
$http.post('/api_endpoint', {
val: fetched_user.settings
});
而JSON.stringify 需要永远执行,那么我的理解是val: fetched_user.settings 可能为空,因为这是异步执行的(异步新手检查点:这是正确的吗?)。
通常在这些情况下,我会提供一个回调函数,以便在长时间运行的任务完成时执行,但是 JSON.stringify() 不提供回调选项。
我该怎么写?
【问题讨论】:
-
为什么要异步?用户设置有那么大吗?
-
如果您希望它是异步的,请使用网络工作者或
setTimeout。 -
不,现在设置不大。但是,如果它是异步的,并且我依赖于它在很小的时候执行速度很快,那么如果它需要更长的时间来执行,那将是一个难以追踪的错误。
-
异步 API 通常要么有一个回调函数作为参数传递,要么返回一个 Promise。在任何一种情况下,它们都不会通过函数返回直接获得值。所以,它不会只在某些时候起作用。
标签: javascript json node.js asynchronous