繁体   English   中英

请求调用给我 TypeError:无法读取未定义的属性“statusCode”

[英]request call giving me TypeError: Cannot read property 'statusCode' of undefined

我正在尝试使用 OneDrive API 签出文件(通过使其成为只读来锁定它) https://docs.microsoft.com/en-us/onedrive/developer/rest-api/api/driveitem_checkout?view =odsp-graph-在线

我下面的lockFile function调用这个api,成功锁定文件。 问题是我在调用后立即收到错误: TypeError: Cannot read property 'statusCode' of undefined

我一直在用我的调试器单步执行这个调用,并且在我尝试调用它下面的行上的 statusCode 之前,错误就出现了。 查看 OneDrive API,它说它只返回一个status: 204 难道我正在使用的请求statusCode期望在引擎盖下的某个地方有一个状态代码? 如果是这样,如果我只是恢复status ,我该如何解决这个问题?

此外,在使用我的调试器单步执行时,我注意到在我看到response返回并设置为IncomingMessage之前一秒钟会弹出错误。 我正在尝试查找解释这意味着什么的文档,但我没有找到任何有用的东西。

lockFile(fileId, driveId, authorization, callback) {
       const call = {
            method: 'POST',
            url: authorization.meta.serviceEndpointUri + '/drives/' + driveId + '/items/' + fileId + '/checkout',
            headers: {
                Authorization: 'Bearer ' + authorization.access_token
            }
        }

        request(call, (err, response, body) => {
            /////////////////
            //I'M GETTING THE ERROR RIGHT HERE, BEFORE IT GETS TO THE NEXT LINE
            /////////////////
            if (err || (response && response.statusCode !== 204)) {
                let statusCode = (response && response.statusCode) ? response.statusCode : 500;
                statusCode = (statusCode === 204) ? 500 : statusCode;//We don't want to send a 204 id there isn't the right data
                callback(StorageProviderError(this.name, statusCode, 1007, body));
            }

            return callback(null, response);
        
        });
};

我无法评论(NOOB),如果不运行代码,我的猜测是您在 if 语句中的代码完成执行之前返回 function 。

尝试添加一个 else 块并将 return 放在那里。 我通常将事物包围在 promise 或至少一个 try catch 块中。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM