我想使用got库发出HTTP请求;机智地正确地运用了承诺。
我已经尝试在代码中使用Promises,但是它们从未按预期工作。
考虑以下伪代码:
function getToken() {
var response = new Request('https://my-api/get-token')
}
// First, I need to get a token
my_token = getToken();
// Now I can perform actions with it
var folderID = createFolder(my_token, '/root')
renameFolder(my_token, folderID, 'foo_bar')
deleteFolder(my_token, folderID)
如您所见,所有都需要同步完成。
这可能不能被使用如记载于得到库承诺完成: https://www.npmjs.com/package/got#usage
我不知道该怎么办。他们甚至没有提供任何示例。
请帮我吗?
答案 0 :(得分:4)
您永远不应该做同步请求他们阻塞线程,这将是一个服务器,并同步请求已经过时了很久的客户端太灾难性的。
我认为您已经学习了一些有关异步代码的知识,但与此同时,您是否看过文档?第一个片段显示了使用asyc/await
进行异步处理是多么简单:
const got = require('got');
(async () => {
try {
const response = await got('https://sindresorhus.com');
const token = response.body;
// ... do stuff with token
const nextResponse = await got('http://sindresorhus.com', {
headers: {
Authorization: `Bearer ${token}`,
},
})
} catch (error) {
console.error(error.response.body);
}
})();