使用 Node.js 模拟发起 http 请求很常用的,但是由于 Node 模块(原生和第三方库)提供里面的方法都是异步,对于很多场景下应用很麻烦,不如同步来的方便。下面总结了几个常见的库 API 从异步转同步的几种方法。模块有: request , request-promise , request-promise-native , request-promise-any
PS: Node的版本>=8.0.0 为了使用 Async / Await PS: 这里加入 auth 字段是为了需要用户名和密码登录的应用的请求 ,比如 rabbitmq ,不需要登录的页面可以去掉这个参数。
第一种
使用原生模块 util , 利用其 promisify API , 代码示例如下:
const request = require('request');const util = require('util');var url = "https:///";Promise.promisifyAll(request, { suffix: 'SC' }); //suffix 自定义 get --> getSCasync function usebluebird(){ let result = await request.getSC(url , {'auth' : { 'user' : 'xx', 'pass' : 'xxx', 'sendImmediately' : 'false', }}); console.log("result" , result);}usebluebird()总结
以上所述是小编给大家介绍的Node.js模拟发起http请求从异步转同步的5种用法,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对网站的支持!