为什么这个程序在调用我的 "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!');
}
另请参阅:
当我发送这个简单的 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!');
}
另请参阅: