首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >console.log(err.message);& console.log(err[0].message);

console.log(err.message);& console.log(err[0].message);
EN

Stack Overflow用户
提问于 2018-04-29 00:59:22
回答 1查看 718关注 0票数 0

当使用Twitter时,如果一切顺利,那么使用err[0].message将返回You have already ___ed this tweet.,但是如果HTTP代码通过,例如由于速率限制,输出将变成TypeError: Cannot read property 'message' of undefined,这会导致脚本在失败时停止。

这可以通过将err[0].message更改为err.message来解决,但是,如果一切顺利,它将返回undefined而不是You have already ____ed this tweet.

使用err.message时的片段

代码语言:javascript
复制
T.post('statuses/retweet', id, function(err, response){
    // log failures
    if(err){
      console.log(err.message);

在利率有限时的产出:

代码语言:javascript
复制
HTTP Error: 429 Too Many Requests

产出不受税率限制时:

代码语言:javascript
复制
undefined

使用err[0].message时的片段

代码语言:javascript
复制
T.post('statuses/retweet', id, function(err, response){
    // log failures
    if(err){
      console.log(err.message);

在利率有限时的产出:

代码语言:javascript
复制
TypeError: Cannot read property 'message' of undefined

产出不受税率限制时:

代码语言:javascript
复制
You have already retweeted this tweet.

那么,处理这一问题的最佳方法是什么,以确保两者都可以正确地登录,而不会导致错误或输出不明确?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-04-29 10:08:55

如果没有错误,err将是undefined

如果出现速率限制,则err将为HTTP Error: 429 Too Many Requests

如果发生其他错误,err将是一个数组。

您可以检查err类型以处理所有场景。

代码语言:javascript
复制
'use strict';

let _ = require('lodash');

T.post('statuses/retweet', id, function (err, response) {

  if (err) {
    if (_.isArray(err)) {
      // handles You have already ___ed this tweet.
      console.log(err[0].message);
    } else {
      // this takes care of HTTP Error: 429 Too Many Requests
      console.log(err.message);
    }
  }

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

https://stackoverflow.com/questions/50082432

复制
相关文章

相似问题

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