【问题标题】:Asynchronous JSON.stringify异步 JSON.stringify
【发布时间】: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


【解决方案1】:

JSON.stringify 不是异步的,因此 $http.post 行在字符串化完成之前不会执行。

【讨论】:

    猜你喜欢
    • 2012-11-25
    • 2023-03-12
    • 2011-04-21
    • 2016-08-18
    • 1970-01-01
    • 1970-01-01
    • 2020-08-01
    相关资源
    最近更新 更多