如何把一个Promise对象转换成一个 async/await对象
 发布于 8 年前  作者 yuexing0921  8331 次预览  最后一次回复是 8 年前  来自 问答 

有个一个现有的API,是一个HTTP请求 代码如下

getData(data)=>{
		return new Promise((resolve, reject)=>{
			request
				.post(url)
				.send(data)
				.end((err, res)=>{
					if(err){
						logger.error(err);
						return reject(err);
					}
					let dataJson = JSON.parse(res.text);
					return reject(dataJson);
				});
		});
	}

有没有办法把里面的代码转换成一个async/await对象

6 回复
yuexing0921

找到原因了,最后一行代码应该写成 return resolve(dataJson);,这样我就可以通过await对象进行接受了

i5ting

await可以直接接promise,所以你不需要转的

yuexing0921

恩,确实是!但是用reject不知道为什么,我用await接受,无法接受,用resolve就可以

DevinXian

@yuexing0921 reject promise 要使用 try … catch 来捕获

yujintang

既然是Promise, 直接 await 就好了, 类似于 await request.postAsync(‘url’, {json: params});