首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >JavaScript数据存储API请求中Dropbox 400错误

JavaScript数据存储API请求中Dropbox 400错误
EN

Stack Overflow用户
提问于 2014-12-03 00:27:48
回答 1查看 172关注 0票数 0

我试图通过Datastore JS API向Dropbox发布大量记录(2000-ish)。我得到了一个错误:

POST https://api12.dropbox.com/1/datastores/put_delta 400 (Bad Request)

...and it参考资料:api12.dropbox.com/1/datastores/put_delta:1

调试时使用的信息不多,但我猜这是因为我已经超过了大小限制。

我有什么想法可以解决这个问题,或者至少可以进一步调试它?

更新

我使用Chrome中的XHR检查器来获得以下响应:

代码语言:javascript
运行
复制
{"error": 
  {
  "size_limit": "Error: put_delta of delta (size 4138335) exceeds size limit 2097152 bytes",
  "object_type": "delta", 
  "limit": 2097152, 
  "size": 4138335
 }
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-12-03 23:56:40

在JS中,每次代码生成控制返回浏览器时,都会有一个隐式“同步”。因此,如果您编写一个输入大量数据的for循环,那么所有这些都会进入一个增量。你可以用小块的文字来分解事情。例如,类似这样的内容(未经测试,如果出现了错误或类似的情况,很抱歉):

代码语言:javascript
运行
复制
var LIMIT = 100; // how many things to write in a single delta

function writeThings(arrayOfThings) {

    // write up to LIMIT things
    for (var i = 0; i < arrayOfThings.length && i < LIMIT; i++) {
        writeSingleThing(arrayOfThings[i]);
    }

    if (i < arrayOfThings.length) {
        // more to write

        window.setTimeout(function () {
            // after a tick, continue from where we left off
            writeThings(arrayOfThings.slice(i));
        }, 1);
    } else {
        // done writing
    }

}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27261573

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档