为什么这个程序在调用我的 "then" 子句之前退出?

Why does this program exit before invoking my "then" clause?

当我发送这个简单的 API 请求-承诺调用时,我没有收到任何响应。有人可以告诉我为什么这不起作用吗?

var request = require('request-promise');
var options = {
    uri: 'https://jsonplaceholder.typicode.com/todos/1',
    headers: {
        'User-Agent': 'Request-Promise'
    },
    json: true
};

request(options)
.then(function (success) {
    console.log(success);
})
.catch(function (error) {
    console.log('noob!');
})

它转到 "request(options)" 行,跳过成功和失败,直接退出程序。给了什么?!

the answer to your previous question 一样,您使用的是 Promise,保证跳过请求和响应。通过传入这两个 function,您将提供您的执行环境(可能是 Node)回调,一旦它成功完成请求,它就可以调用这些回调。因为您正在访问远程服务器,所以这需要一些时间,通常在几十或几百毫秒内。

如果您不以其他方式指示 Node,它将在到达脚本末尾时终止。这可能不是库调用您的回调的时间。与在 this NodeJS issue 中一样,您可以使用顶级 await 函数,它会暂停执行程序以等待回调。

try {
  let success = await request(options);
  console.log(success);
} catch (error) {
  console.log('noob!');
}

另请参阅: